我需要选择XPATH的父节点。
XML
<PatientDetailsXML>
<PList>
<PName type="Patient">
<properties>
<Room bedType="Auto" />
<PName title="Joe Beom" PId="1234">
<Details>
<classification classification="paymenttype" category="Wallet" />
<classification classification="Humor" category="None" />
<classification classification="Food" category="Fruit" />
</Details>
</PName>
</properties>
<childEvents>
</childEvents>
</PName>
<PName type="Patient">
<properties>
<Room bedType="Auto" />
<PName title="John Bair" PId="1234">
<Details>
<classification classification="paymenttype" category="Found" />
<classification classification="Humor" category="None" />
<classification classification="Food" category="Vegetables" />
</Details>
</PName>
</properties>
<childEvents>
</childEvents>
</PName>
</PList>
</PatientDetailsXML>
如果我的currentnode
是<PName type="Patient">
,请在上面的列表中排第一。我需要使用<classification classification="Food" category="Vegetables" />
搜索下一个节点,并在<PNAME title>
中选择它的标题。
代码
var testing = nodes[i].SelectSingleNode(@"following::Details/classification[@classification='Food'and @category ='Vegetables']")ParentNode.ParentNode.Attributes["title"].Value;
如果您在上方看到我正在做.ParentNode.ParentNode
,到达<PNAME title>
。这对我来说很好。但是有更好的方法吗?
答案 0 :(得分:0)
您可以使用: 1.“祖先”-选择当前节点的所有父母和祖父母 2.“祖先或自身”-选择当前节点的所有父辈和祖父母,包括节点本身。
答案 1 :(得分:0)
尝试在XPath下获取必需的属性
"following::Details/classification[@classification='Food'and @category ='Vegetables']/ancestor::PNAME/@title"