Предположим, у нас есть этот простой xml...
<books>
<book>
<author/>
<title/>
</book>
<book>
<author/>
<title/>
</book>
</books>
Я использую этот xpath для получения элементов первого экземпляра книги.
//books[1]/*
Возвращает
<author/>
<title/>
И это прекрасно работает, но я должен заставить его работать с помощью local-name(). Я пробовал следующее, но ничего из этого не работает...
//*[local-name()='books']/*
это возвращает повторяющиеся элементы автора и заголовка, что не очень хорошо, они мне нужны только от первого ребенка
//*[local-name()='books'][0]/*
это ничего не возвращает
По сути, я хочу создать файл CSV, поэтому первая строка вывода будет заголовком, в котором перечислены имена атрибутов книги, за которыми следуют произвольные значения данных. Мне нужно только, чтобы часть заголовка работала.
author,title
john,The End is Near
sally,Looking for Answers
//books[1]/*
должен возвращать два элемента книги, а не автора и заголовок. Так что где-то путаница. - person Michael Kay   schedule 09.11.2011