Tag: xml namespaces

如何在不进行任何修改的情况下添加InnerXml?

我试图找到一种简单的方法来将XML添加到XML-with-xmlns而不必获取xmlns=””也不必每次都指定xmlns 。 我尝试了XDocument和XmlDocument但找不到简单的方法。 我得到的最接近的是这样做: XmlDocument xml = new XmlDocument(); XmlNode docNode = xml.CreateXmlDeclaration(“1.0”, “UTF-8”, null); xml.AppendChild(docNode); XmlElement root = xml.CreateElement(“root”, @”http://example.com”); xml.AppendChild(root); root.InnerXml = “b”; 但我得到的是: b 那么:有没有办法设置InnerXml而不进行修改?

如何将节点和属性附加到现有的Xml文件

我有以下XML文件。 我必须使用XElement和XAttribute添加节点。 这该怎么做? DS1 SELECT FirstName,LastName FROM Person DS1 New text2 如何使用XElement和XAttribute将以下XML文本添加到“/ query”元素末尾的上面的xml文件中 ReportId System.Int64

在命名空间中获取属性的值

我正在尝试处理以下XML: Nombre SI SI 我正在使用下一个代码: XDocument doc = XDocument.Parse(result); var q = from item in doc.Descendants() let attributeType = item.Attribute(“AgenteRetencionIVA”).Value select item; 我有问题得到属性rif:AgenteRetencionIVA 。 我该怎么办?

具有XDocument命名空间问题的Linq-to-XML

我有这个XML文档: 01 ABN Amro Bank 02 ASN Bank 这不起作用: var banks = doc.Descendants(“issuer”).Select(x => new Bank(Convert.ToInt32(x.Element(“issuerid”).Value), x.Element(“issuername”).Value)).ToList(); 但是当我手动删除目录响应xml命名空间xmlns=”https://www.sisow.nl/Sisow/REST”它可以工作! 命名空间url是404 。 那么为什么xdoc如果它是404就不会忽略命名空间呢? 这也行不通: var banks = doc.Elements().Where(e => e.Name.LocalName == “issuer” ).Select(… 主要问题是:如何修改代码以使其忽略404名称空间?

为什么NamespaceManager在XPath中不使用前缀时不使用DefaultNamespace

当我想使用XPath遍历我的XmlDocument时,我遇到了文档中有许多丑陋的命名空间的问题,所以我开始使用NamespaceManager和XPath。 XML看起来像这样 Data 现在,根据我在本文档中看到的, “urn:schemas-microsoft-com:office:spreadsheet”是默认命名空间,因为它位于根元素上。 所以,天真地,我像这样配置了我的NamespaceManager : XmlDocument document = new XmlDocument(); document.Load(reader); XmlNamespaceManager manager = new XmlNamespaceManager(document.NameTable); manager.AddNamespace(String.Empty, “urn:schemas-microsoft-com:office:spreadsheet”); manager.AddNamespace(“o”, “urn:schemas-microsoft-com:office:office”); manager.AddNamespace(“x”, “urn:schemas-microsoft-com:office:excel”); manager.AddNamespace(“ss”, “urn:schemas-microsoft-com:office:spreadsheet”); manager.AddNamespace(“html”, “http://www.w3.org/TR/REC-html40”); 但是,当我尝试访问节点时 foreach (XmlNode row in document.SelectNodes(“/Workbook/Worksheet[1]/Table/Row”, manager)) 我从来没有得到任何结果。 我的印象是,通过使用空前缀设置第一个命名空间,在搜索该工作空间中的节点时,我不需要设置它。 但是,正如在AddNamespace方法中所述 : 如果XPath表达式不包含前缀,则假定名称空间统一资源标识符(URI)是空名称空间。 这是为什么? 而且,更重要的是:如何访问默认命名空间中的节点,如果不使用前缀将它们设置为空命名空间? 如果我在搜索节点时甚至无法访问它,那么在管理器上设置默认命名空间有什么用呢?

将属性添加到asp.net中的元素?

我想在asp.net中的元素中添加两个额外的xml命名空间: 采取: 制作(添加facebook开放图形命名空间): 如何访问代码中的元素并添加命名空间?

XElement会自动将xmlns =“”添加到自身

我正在从表创建一个新的XDocument。 我必须从XSD文档validation文档并且它会一直失败,因为它不应该将xmlns =“”添加到其中一个元素。 这是相关代码的一部分。 XNamespace xsi = “http://www.w3.org/2001/XMLSchema-instance”; XNamespace xmlns = “https://uidataexchange.org/schemas”; XElement EmployerTPASeparationResponse = null; XElement EmployerTPASeparationResponseCollection = new XElement(xmlns + “EmployerTPASeparationResponseCollection”, new XAttribute(XNamespace.Xmlns + “xsi”, xsi), new XAttribute(xsi + “schemaLocation”, “https://uidataexchange.org/schemas SeparationResponse.xsd”)); XDocument doc = new XDocument( new XDeclaration(“1.0”, null, “yes”), EmployerTPASeparationResponseCollection); //sample XElement populate Element from database StateRequestRecordGUID = new XElement(“StateRequestRecordGUID”); StateRequestRecordGUID.SetValue(rdr[“StateRequestRecordGUID”].ToString()); […]

在C#中解析和查询SOAP

我试图解析一个严重命名的SOAP消息(源也可以在这里找到): 0a00f556419041c08d8479fbaad02a3c 5.3.0 1000 Success B08CF7B847DAD89C752334BDEBB69B5B 仅针对上下文,这是MM7提交消息的响应。 如何获得以下值: TransactionID,StatusCode,StatusText,MessageID 我试过Linq-Xml但是当查询包含像“soapenv:Body”这样的值时没有运气。

为什么’xmlns’属性会影响XPath节点查找?

以下代码完美无缺。 请参阅下面的XML文件。 XPathDocument xPathDoc = new XPathDocument(@”C:\Authors.xml”); XPathNavigator navigator = xPathDoc.CreateNavigator(); XPathNodeIterator iterator = navigator.Select(“/Contacts/Author/FirstName”); iterator.MoveNext(); string firstName = iterator.Current.InnerXml; Console.WriteLine(firstName); ‘firstName’的值返回’Joe’,这是完美的。 但是,当我将这个attibute xmlns =“http://www.w3.org/1999/xhtml”添加到”标签时,它看起来如下: 然后代码没有返回正确的值(’Joe’)为什么然后属性xmlns =“http://www.w3.org/1999/xhtml”影响上面的代码以及我缺少什么来返回正确的值? 任何帮助将不胜感激。 这是xml文件: Joe Larry Mary

在C#中,有没有办法使用短前缀而不是每个节点的完整命名空间生成XDocument?

我只是想让我的XML更整洁,更小。 我知道在C#中我可以这样做: XNamespace ds = “http://schemas.microsoft.com/ado/2007/08/dataservices”; new XElement(ds + “MyDumbElementName”, “SomethingStupid”); 并得到一个XML simliar: SomethingStupid 而不是像这样的东西: SomethingStupid 显然,第二个版本更漂亮,更易于阅读和紧凑。 有没有办法生成一个XDocument等效的紧凑版本,而不调用Parse(“…”)? 您可能决定承担风险并回答“否”,在这种情况下,我认为公平的事情是等待其他人回答,如果没有人给出合适的答案,我会接受您的“否”,否则如果有人确实提供了答案,我会标记“否”。 我希望你们看起来也很公平。 编辑:也许我应该更具体一点,并说我希望能够使用多个名称空间,而不仅仅是一个。