2016-11-10 3 views
0

У меня есть два XML-документы, напоминающие следующее: выражениекак написать выражение XPath

<root> 
<recordType>EFGH</recordType> 
<field> 
    <value>red</field> 
    <id>1234</field> 
</field> 
</root> 

для приведенного выше XML я есть XPath для ALLOWEDVALUES как:

первая:

<root> 
<recordType>ABCD</recordType> 
<field> 
    <value>red</field> 
    <id>1234</field> 
</field> 
</root> 

второй XPATH: recordType: ABCD; EFGH Это выражение работает нормально, но для нижнего xml

<root> 
<record isRecord="true"> 
<field id="220" isRecord="false" value="Red" /> 
<field id="221" isRecord="true" value="Small" /> 
<field id="222" isRecord="true" value="25" /> 
</record> 
<record isRecord="true"> 
<field id="220" value="Red" /> 
<field id="221" value="Large" /> 
<field id="222" value="50" /> 
</record> 
</root> 

Я хочу XPATH, если поле id = 220 и isRecord = "false" и value = "Red".

ответ

0

Будет ли следующее выражение XPath выполнить ваши ожидания: результат

/root/record/field[@id='220' and @isRecord='false' and @value='Red']

Matching:

<field id="220" isRecord="false" value="Red" />

+0

Это не работает для меня .... Но когда я попытался/root/record/field/@ id: 220 работает нормально .. , но когда я проверяю/root/record/field/@ id: 221 .... это не работает для вышеуказанного xml .. он не рассматривает второй тег .. –

+0

"/ root/record/field/@ id : 220 "не является допустимым xpath. – uL1

Смежные вопросы