Xml命名空间

1.
<?xml version="1.0" encoding="utf-8"?>
<books xmlns:wq="http://www.baidu.com">
  <book name="海底两万里" />
  <book name="鲁宾逊漂流记" />
</books>

<books xmlns:wq="http://www.baidu.com"> 这一句只是声明了wq这个命名空间对应的URI,并没有让books和books的子元素使用此命名空间


2.
<?xml version="1.0" encoding="utf-8"?>
<books xmlns="http://www.baidu.com">
  <book name="海底两万里" />
  <book xmlns:ly="http://www.google.com" name="裸婚" />
  <book xmlns="http://www.google.com" name="鲁宾逊漂流记" />
</books>

<books xmlns:wq="http://www.baidu.com"> 这一句使用了默认的命名空间,让books这个元素和books没有指定命名空间的子元素使用此命名空间,既books,海底两万里,裸婚这几个元素使用此命名空间



3.
<?xml version="1.0" encoding="utf-8"?>
<wq:books xmlns:wq="http://www.baidu.com">
  <book name="海底两万里" />
  <book name="鲁宾逊漂流记" />
</wq:books>

<wq:books xmlns:wq="http://www.baidu.com"> 这一句只让books使用此命名空间,而没有让books的子元素使用此命名空间


使用LinqToXml查询带命名空间的节点:
第一种方法:xml.Descendants("{http://www.baidu.com}" + "books")
第二种方法:xml.Descendants(XNamespace.Get("http://www.baidu.com") + "books")
原文地址:https://www.cnblogs.com/mxw09/p/1961215.html