xmllint выбирает только первый элемент

Я хотел бы извлечь текст каждого <id>элемент с xmllint в текстовый файл.

<rss>
    <channel>
        <item>
            <id>111</id>
            <description>text 1</description>
        </item>
        <item>
            <id>222</id>
            <description>text 2</description>
        </item>
        <item>
            <id>333</id>
            <description>text 3</description>
        </item>
    </channel>
</rss>

Каждый элемент должен находиться на отдельной строке в текстовом файле, например так:

111
222
333

Я уже застрял в выборе всех элементов. Почему-то мой xmllint Команда возвращает только первый элемент.

xmllint test.xml --xpath "string(//id)"

Я пробовал так много вариантов этого --xpath заявление, но не могу понять это.

(Я не знаю, если это актуально, но я использую xmllint на OS X)

1 ответ

Решение

xmllint --shell test.xml <<< echo 'cat //id/text()' > out.txt

Другие вопросы по тегам