我试图获取嵌套元素的默认命名空间。我的XML文件的一部分是:
<Node xmlns="http://namespace-root/">
<Node1>
<Node2 xmlns="http://namespace-element">Value</Node2>
</Node1>
</Node>
我的部分查询代码是 (名称空间&#39; namespaceNode&#39;和@39; namespaceElement&#39;是XNamespace对象:
from node in xDoc.Elements(namespaceNode+ "Node")
select new DataObject
{
Xmlns = node.Element(namespaceNode+ "Node1").Element(namespaceElement+ "Node2").GetDefaultNamespace(),
Value = (string)node.Element(namespaceNode+ "Node1").Element(namespaceElement+ "Node2")
}
Value属性获取元素的值,但是如何将此节点的命名空间读取为Xmlns属性?
答案 0 :(得分:0)
这就是我通常的做法
XDocument doc = XDocument.Load(FILENAME);
XElement node = doc.Root;
XNamespace xNs = node.GetDefaultNamespace();
XElement node2 = doc.Descendants().Where(x => x.Name.LocalName == "Node2").FirstOrDefault();
XNamespace x2Ns = node2.GetDefaultNamespace();