LINUX.ORG.RU

Первый элемент xpath

 ,


0

1

Добрый день, подскажите пожалуйста как вывести первое значение из всех найденных через xpath. Сейчас такой вариант

xpath -e "//pos/text()" result.xml >> test.txt
он выводит все теги <pos>, а нужно что бы только первый который нашел.



Последнее исправление: Flover (всего исправлений: 3)

Примерно так, поиграйся скобками: (//pos[0])/text()

deep-purple ★★★★★
()

Если теги <pos> являются «братьями» (у них один родитель), то по совету ув. deep-purple. Пример:

<div>
<pos>...</pos>
<pos>...</pos>
<pos>...</pos>
</div>

Если родители разные - то нужно уточнение алгоритма выборки. Пример:

<container>
<div id="first">
<pos>...</pos>
<pos>...</pos>
<pos>...</pos>
</div>
<div id="second">
<pos>...</pos>
<pos>...</pos>
<pos>...</pos>
</div>
</container>

Если такой случай, то играться от //container/div[0]/pos[0]/text()

Deleted
()
Последнее исправление: Rainor (всего исправлений: 3)
Ответ на: комментарий от Deleted

парсится файл с адресами. иногда багуется и выдает сразу несколько. = https://geocode-maps.yandex.ru/1.x/?geocode=%D0%93%D1%80%D0%BE%D0%B4%D0%BD%D0%B5%D0%BD%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C,%20%D0%B3.%20%D0%93%D1%80%D0%BE%D0%B4%D0%BD%D0%BE,%20%D1%83%D0%BB.%20%D0%A1%D0%BE%D0%BB%D0%BE%D0%BC%D0%BE%D0%B2%D0%BE%D0%B9,%20%D0%BD%D0%B0%20%D1%82%D0%B5%D1%80%D1%80%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B8%20%D0%BE%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8%20%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE%20%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BF%D0%BE%D1%80%D1%82%D0%B0%20%20%D0%9C%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD%20%D0%A0%D0%BE%D0%B4%D0%BD%D0%B0%D1%8F%20%D1%81%D1%82%D0%BE%D1%80%D0%BE%D0%BD%D0%B0

Flover
() автор топика

сделал так: xpath -e '//featureMember[1]/GeoObject[1]/Point[1]/pos[1]/text()' result.xml >> gps

всем спасибо

Flover
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.