2012-03-06 9 views
-1

私はこのXMLXML子孫V/sの子ノード

<globalSettings> 
<a>V1</a> 
<b>V2</b> 
<test>TestValueGlobal</test> 
</global> 
<block name="one"> 
<name>V2</name> 
<test>TestValueOfBlock1</test> 
</block> 
</globalSettings> 

doc = XDocument.Parse(xml); 

を持っている私は<globalSettings>から<test>の値を取得したいが、<test>は常に存在していません。今、私は doc.Descendants("test").FirstOrDefault()を持っているが、それは私がこの問題を解決するにはどうすればよい<block name="one">

から私に<test>の値を与えることができますか?

ありがとうございました! RS

+0

XMLの一部が欠落していますか?整形式ではなく、 ''要素もありません。 –

+0

更新済み!正しい終わりを追加しました。 – rocketsingh

答えて

0

<test>がない場合、それはあなたの<test>の値または空の文字列を返すべき

doc.XPathEvaluate("string(/globalSettings/test)"); 

を試してみてください。

+0

子孫の代わりに要素を使用すると、すぐに子ノードが表示されます。 – rocketsingh