2013-07-18 4 views
1

Моя структура XML похожа,Получение значения узла Xpath в гнездовой XML

<items> 
<item> 
    <brand> 
     <id> 3 </id> 
    </brand> 
    <product> 
     <productType>Type 1</productType> 
    </product> 
</item> 
<item> 
    <brand> 
     <id> 4 </id> 
    </brand> 
    <product> 
     <productType>Type 2</productType> 
    </product> 
</item> 
</items> 

Мне нужно, чтобы получить значение типа продукта, если пользователь предоставляет бренд идентификатор. Для, например, если пользователь вводит марку ИН 3, то мне нужно вернуть тип продукта Type 1

Я попытался с выражением Xpath

/items/item/brand[id = 3]/product/productType 

Но это не работает. Каким будет правильное выражение xpath.

ответ

3

У вас есть простая вложенность проблема, так как brand является родственным к product и не anscestor как ваш запрос XPath подразумевает.

Просто измените на:

/items/item[brand/id = 3]/product/productType 

Результат:

Element='<productType>Type 1</productType>' 

Попробуйте на http://www.freeformatter.com/xpath-tester.html.

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