我有一个名为XDocument
的{{1}}:
currentIndex
我会重新创建一个类似于上面的新<INDEX>
<SUBINDEX>
<!-- Many tag and infos -->
<SUBINDEX>
<ITEM>
<IDITEM>1</IDITEM>
<ITEM>
<ITEM>
<IDITEM>2</IDITEM>
<ITEM>
...
<ITEM>
<IDITEM>n</IDITEM>
<ITEM>
</INDEX>
:
XDocument
我想在C#中这样做,我试过这样开始:
<INDEX>
<SUBINDEX>
<!-- Many tag and infos -->
<SUBINDEX>
<ITEM>
<IDITEM>2</IDITEM>
<ITEM>
</INDEX>
现在出现问题:如果public void ParseItems(XDocument items)
{
IEnumerable<XElement> items = from a in indexGenerale.Descendants(XName.Get("ITEM"))
// where a.Element("IDITEM").Equals("2")
select a;
foreach(var item in items) {
// do something
}
}
子句被评论,where
包含items
个元素(每个n
标记一个),但如果我删除该评论项目为空。为什么这样做。我需要如何进行搜索?
答案 0 :(得分:3)
使用明确的演员:
from a in indexGenerale.Descendants("ITEM")
where (string)a.Element("IDITEM") == "2"
a.Element("IDITEM")
将返回XElement
,它永远不会等于"2"
。也许你的意思是a.Element("IDITEM").Value.Equals("2")
,这也会有用,但显式演员会更安全。它不会如果元素没有找到,则抛出异常,