创建一个
XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Root",
new XElement(aw+"user",
new XElement(aw + "UserID", 1),
new XElement(aw + "UserName", "lemon"),
new XElement(aw + "Password", "12345")));
显示,我们可以看到只有根节点有一个命名空间
<?xml version="1.0" encoding="utf-8"?>
<Root xmlns="http://www.adventure-works.com">
<user>
<UserID>1</UserID>
<UserName>lemon</UserName>
<Password>12345</Password>
</user>
</Root>
如果有节点没有加上命名空间
XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Root",
new XElement(aw+"user",
new XElement(aw + "UserID", 1),
new XElement(aw + "UserName", "lemon"),
new XElement("Password", "12345")));
显示的结果 就是 这个节点的命名空间为空
<?xml version="1.0" encoding="utf-8"?>
<Root xmlns="http://www.adventure-works.com">
<user>
<UserID>1</UserID>
<UserName>lemon</UserName>
<Password xmlns="">12345</Password>
</user>
</Root>
对命名空间的检索
XElement xe = XElement.Load(path);
XNamespace aw = "http://www.adventure-works.com";
var e = xe.Elements(aw+"user").Elements(aw+"UserID");
foreach (var x in e)
{
Console.WriteLine((string)x);
}
不加aw 则无法检索
XElement xe = XElement.Load(path);
XNamespace aw = "http://www.adventure-works.com";
var e = xe.Elements(aw+"user").Elements("Password");
foreach (var x in e)
{
Console.WriteLine((string)x);
}
如上面第二个 XML,没有命名空间,需要去掉命名空间才能检索到