您可以使用創建root
元素的相同方式創建a
XmlElement
,並指定該元素的InnerText
。
選項1:
string ns = @"http://example.com";
XmlDocument xml = new XmlDocument();
XmlNode docNode = xml.CreateXmlDeclaration("1.0", "UTF-8", null);
xml.AppendChild(docNode);
XmlElement root = xml.CreateElement("root", ns);
xml.AppendChild(root);
XmlElement a = xml.CreateElement("a", ns);
a.InnerText = "b";
root.AppendChild(a);
選項2:
XmlDocument xml = new XmlDocument();
XmlNode docNode = xml.CreateXmlDeclaration("1.0", "UTF-8", null);
xml.AppendChild(docNode);
XmlElement root = xml.CreateElement("root");
xml.AppendChild(root);
root.SetAttribute("xmlns", @"http://example.com");
XmlElement a = xml.CreateElement("a");
a.InnerText = "b";
root.AppendChild(a);
生成的XML:
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://example.com">
<a>b</a>
</root>
如果使用root.InnerXml = "<a>b</a>";
而不是從XmlDocument
生成的XML是創建XmlElement
:
選項1:
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://example.com">
<a xmlns="">b</a>
</root>
選項2:
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://example.com">
<a xmlns="http://example.com">b</a>
</root>
所述的xmlns = 「」,是因爲要添加從不同的命名空間的元素。將它們添加到父元素的名稱空間,並且不應該看到xmlns =「」部分 – 2013-02-12 20:50:25
正如我寫的 - 我試圖不必在每個節點中指定名稱空間。 – ispiro 2013-02-12 20:52:01
只需要從父項開始,不需要對它進行硬編碼 – 2013-02-12 21:03:39