xmllint 只选择第一个元素
xmllint only selects first element
我想将具有 xmllint
的每个 <id>
元素的文本提取到一个文本文件中。
<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
命令仅 returns 第一个元素。
xmllint test.xml --xpath "string(//id)"
我已经尝试了很多 --xpath
语句的变体,但似乎无法弄清楚。
(我不知道它是否相关,但我在 OS X 上使用 xmllint
)
xmllint --shell test.xml <<< echo 'cat //id/text()'
> out.txt
我想将具有 xmllint
的每个 <id>
元素的文本提取到一个文本文件中。
<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
命令仅 returns 第一个元素。
xmllint test.xml --xpath "string(//id)"
我已经尝试了很多 --xpath
语句的变体,但似乎无法弄清楚。
(我不知道它是否相关,但我在 OS X 上使用 xmllint
)
xmllint --shell test.xml <<< echo 'cat //id/text()'
> out.txt