0
ネストされた要素の既定の名前空間を取得しようとしています。私のXMLファイルの一部は次のとおりです。(LINQ to XML)でネストされたXML要素の既定のネームスペースを取得する
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")
}
値:
<Node xmlns="http://namespace-root/">
<Node1>
<Node2 xmlns="http://namespace-element">Value</Node2>
</Node1>
</Node>
(名前空間 'namespaceNode' と 'namespaceElementは' XNamespaceオブジェクト私のクエリのコードの一部をされていますプロパティは要素の値を取得しますが、このノードの名前空間をXmlnsプロパティに読み込むにはどうすればよいですか?
である私はそれを試してみました(XNamespace x2Ns = node2.GetDefaultNamespace())が、私は、フィールド "NamespaceName" 空と名前空間を得ました。 node2.Name.Namespaceを実行すると、Xnamespace要素にNamespaceNameという値が設定されています。理由は何ですか? –
名前空間がルートノードにあると仮定した最初のノード。私は確かではなく、ルートからネームスペースを取得する例と、ルートではないノードからネームスペースを取得する別の例を挙げたかっただけです。 – jdweng
はい、最初の名前空間はルートノードにあります。私は、なぜ.Name.Namespaceが、この要素の.GetDefaultNamespace()とは異なる何かを返すのは不思議です。ご協力いただきありがとうございます。 –