代码之家  ›  专栏  ›  技术社区  ›  user726720

XPATH搜索下一个节点

  •  1
  • user726720  · 技术社区  · 7 年前

    我需要选择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> . 这对我来说很好。但是有没有更好的方法呢。

    2 回复  |  直到 7 年前
        1
  •  0
  •   Gray_Rhino    7 年前

    您可以使用: 1.“祖先”-选择当前节点的所有父节点和祖父母节点

        2
  •  0
  •   Andersson    7 年前

    尝试在XPath下面获取所需的属性

    "following::Details/classification[@classification='Food'and @category ='Vegetables']/ancestor::PNAME/@title"