Как получить узел, имеющий дочерний узел, имеющий указанный текст? - PullRequest
0 голосов
/ 17 января 2019

Существует xml:

<mgns1:Champ_supplementaire>
  <mgns1:CODE_CS>1</mgns1:CODE_CS>
  <mgns1:VALEUR_CS>2</mgns1:VALEUR_CS>
</mgns1:Champ_supplementaire>
<mgns1:Champ_supplementaire>
  <mgns1:CODE_CS>2</mgns1:CODE_CS>
  <mgns1:VALEUR_CS>M</mgns1:VALEUR_CS>
</mgns1:Champ_supplementaire>
<mgns1:Champ_supplementaire>
  <mgns1:CODE_CS>3</mgns1:CODE_CS>
  <mgns1:VALEUR_CS>LOC</mgns1:VALEUR_CS>
</mgns1:Champ_supplementaire>

Я хочу получить узел mgns1:Champ_supplementaire с дочерним элементом mgns1:CODE_CS, текст которого 2. Как это сделать?

Я пытался

NodeList nodeliste_cs2 = (NodeList) xpath.evaluate( "//mgns1:Champ_supplementaire[//mgns1:CODE_CS=2]//mgns1:VALEUR_CS",doc, XPathConstants.NODESET);

1 Ответ

0 голосов
/ 17 января 2019

//node_foo[//node_bar=2]

означает выбрать первое найденное node_foo, если есть где-нибудь в DOM node_bar со значением 2

//node_foo[node_bar=2]

означает выбрать первый найденный node_foo, если у него есть собственный дочерний элемент node_bar со значением 2

Так что вам нужно

"//mgns1:Champ_supplementaire[mgns1:CODE_CS=2]/mgns1:VALEUR_CS"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...