【发布时间】:2013-02-12 20:47:42
【问题描述】:
我正在尝试找到一种简单的方法来将 XML 添加到带有 xmlns 的 XML 中,而无需每次都指定 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 = "<a>b</a>";
但我得到的是:
<root xmlns="http://example.com">
<a xmlns="">b</a>
</root>
那么:有没有办法在不修改InnerXml 的情况下设置它?
【问题讨论】:
-
xmlns="" 是因为您要添加来自不同命名空间的元素。将它们添加到父元素的命名空间,你不应该看到 xmlns="" 部分
-
正如我所写 - 我试图 not 必须在每个节点中指定命名空间。
-
只从父级获取 if,无需硬编码
-
xml 元素的身份包括它们的名称和命名空间。你看到的是 XmlDocument 试图保留你传递的身份,它不是在编造东西
-
感谢您的意见。但问题很清楚,所以我不会争论。
标签: c# .net xml xml-namespaces