XPATH Поиск следующего узла - PullRequest
0 голосов
/ 27 декабря 2018

Мне нужно выбрать родительский узел моего 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">, 1-й в списке выше.Мне нужно найти следующий узел с помощью <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 ]

0 голосов
/ 27 декабря 2018

Попробуйте ниже XPath, чтобы получить обязательный атрибут

"following::Details/classification[@classification='Food'and @category ='Vegetables']/ancestor::PNAME/@title"
0 голосов
/ 27 декабря 2018

Вы можете использовать: 1. «предок» - выбирает всех родителей и бабушек и дедушек текущего узла 2. «предок или сам» - выбирает всех родителей и бабушек и дедушек текущего узла, включая сам узел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...