xmllint只选择第一个元素

时间:2018-02-01 13:09:07

标签: xpath 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声明的大量变体,但似乎无法弄明白。

(我不知道它是否相关,但我在OS X上使用xmllint

1 个答案:

答案 0 :(得分:0)

xmllint --shell test.xml&lt;&lt;&lt; echo 'cat //id/text()'&gt; out.txt