1. 创建无Namespace的XML
a. 如果先写出这样一个XML:
xml version="1.0" encoding="UTF-8"?>
<persons>
<person>
<firstName>WangfirstName>
<lastName>JoelastName>
<address>http://www.baidu.comaddress>
person>
persons>
//创建XML
XmlDocument doc = new XmlDocument();
XmlElement persons = doc.CreateElement("persons");
doc.AppendChild(persons);
XmlElement person = doc.CreateElement("person");
persons.AppendChild(person);
XmlElement firstName = doc.CreateElement("firstName");
person.AppendChild(firstName);
firstName.InnerText = "Wang";
XmlElement lastName = doc.CreateElement("lastName");
person.AppendChild(lastName);
lastName.InnerText = "Joe";
XmlElement address = doc.CreateElement("address");
person.AppendChild(address);
address.InnerText = "http://wwww.baidu.com";
//打印结果
using (XmlWriter writer = XmlWriter.Create(Console.Out))
{
doc.WriteTo(writer);
}
分析一下,在DOM方式下创建任何一个XML节点都必须使用XmlDocument的对应的Create方法创建,然后再添加到对应位置,这就是DOM方式最麻烦的地方。
b. 格式化
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true; //缩进
using (XmlWriter writer = XmlWriter.Create(Console.Out, settings))
{
doc.WriteTo(writer);
}
2. 创建有Namespace的XML
XmlDocument doc = new XmlDocument();
const string ns = "namespace";
XmlElement persons = doc.CreateElement("v", "persons", ns);
doc.AppendChild(persons);
XmlElement person = doc.CreateElement("v", "person", ns);
persons.AppendChild(person);
XmlElement firstName = doc.CreateElement("v", "firstName", ns);
person.AppendChild(firstName);
firstName.InnerText = "Wang";
XmlElement lastName = doc.CreateElement("v", "lastName", ns);
person.AppendChild(lastName);
lastName.InnerText = "Joe";
XmlElement address = doc.CreateElement("v", "address", ns);
person.AppendChild(address);
address.InnerText = "http://wwww.baidu.com";
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
using (XmlWriter writer = XmlWriter.Create(Console.Out, settings))
{
doc.WriteTo(writer);
}
xml version="1.0" encoding="UTF-8"?>
<v:persons xmlns:v="namespace">
<v:person>
<v:firstName>Wangv:firstName>
<v:lastName>Joev:lastName>
<v:address>http://www.baidu.comv:address>
<v:/person>
<v:/persons>