一個xml我得到這樣一個XML:獲取子節點的值與未知深度
<menu>
<is>
<not>
<l>Title</l>
<s>url1</s>
<t>1</t>
<is>
<hlua>
<l>Title</l>
<s>url2</s>
<t>0</t>
<is>
<frme>
<l>Title</l>
<s>url3</s>
<t>1</t>
</frme>
</is>
</hlua>
<chrj>
<l>Title</l>
<s>url4</s>
<t>1</t>
<is>
<cgas>
<l>Title</l>
<s>url5</s>
<t>1</t>
<is>
<el12>
<l>Title</l>
<s>url6</s>
<t>1</t>
</el12>
</is>
</cgas>
<cael>
<l>Title</l>
<s>url7</s>
<t>0</t>
</cael>
</is>
</chrj>
</is>
</not>
</is>
<menu>
我不知道子節點的名稱,唯一節點「菜單」的名字。 我沃爾德想獲取值的節點列表:「S」,如果他們的節點「T」 = 1,如果他的父節點「T」 = 1
我想獲得這個名單:
- 爲url1
- URL4
- URL5
- url6
在XML實例 我不明白的URL 「URL2」 貝科使用他的節點「t」= 0 我沒有得到url「url3」,因爲雖然他的節點「t」= 1,他的父節點「hlua」有他的節點「t」= 0
我怎樣才能用LINQ來做這件事嗎?
謝謝!
我認爲這解決了我的問題:
List<XElement> listurls = (from elements in xe.Descendants()
//Elemento
let t_element = elements.Element("t")
let t_element_value = t_element != null ? t_element.Value : String.Empty
//Elemento Padre
let parent_element = elements.Parent.Parent
let t_element_parent = parent_element.Element("t")
let t_element_parent_value = t_element_parent != null ? t_element_parent.Value : "1"
where t_element_value.EndsWith("1") && t_element_parent_value.EndsWith("1") && elements.Element("u").Value!="#" && elements.Element("u").Value != ""
select elements.Element("u")).ToList();
這仍然是一個問題,或者你找到你的解決方案? –