2013-03-26 1 views
0

Имея следующий XMLВозврат тип самого узла в XPath

<xml> 
<property href="abc">b</property> 
<element attr="def">k</element> 
</xml> 

Как я могу сделать следующее возвращение XPATH буквально element.

*[@attr='def'] 

На его собственный, это может показаться странным, что нужно сделать, но с использованием выше XPath я не могу найти сам тип узла (только атрибуты и дети).

+0

Вы отметили это как 'java'; означает ли это, что вы получаете «Node» или «NodeList» и нужно его обработать? Или вы хотите получить строковое значение для чего-то вроде XSLT? – parsifal

+0

Можете ли вы уточнить, хотите ли вы имя элемента xml (например, 'property' или' element' в вашем примере xml) или тип узла ** xml ** (например, элемент, атрибут, текст и т. Д.), , Вы знаете, что '*' в XPath * всегда * означает «элемент xml», правильно? –

+0

Извините, кстати, за медленную реакцию, написал это на работе и, как правило, проверяю, как только я вернусь домой, но вчера я сразу заснул O :). В любом случае, я имел в виду то, что дал мне ответ Мартина Хоннен, и я думаю, что мне нужно освежить знание терминологии xml/xpath ...: S. –

ответ

1

Если вы хотите получить имя узла элемента, используйте name(*[@attr = 'def']) или local-name(*[@attr = 'def']).

+0

Это не то, что ОП спросил: «Как я могу сделать следующий xpath return ** буквально элемент **» (выделено курсором). – parsifal

+0

Как этот ответ не то, что спросил ОП? –

+0

@FrancisAvila - если цитаты, которые я уже упоминал, недостаточно, как насчет названия вопроса? * Имя * узла не является его * типом *. – parsifal