3 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
你應(yīng)該嘗試這些工具:
xmlstarlet
:可以編輯,選擇,轉(zhuǎn)換...默認(rèn)情況下不安裝,xpath1xmllint
:經(jīng)常默認(rèn)使用libxml2
xpath1 安裝(檢查我的包裝器是否有換行符分隔輸出xpath
:通過perl的模塊XML::XPath
xpath1 安裝xml_grep
:通過perl的模塊安裝XML::Twig
,xpath1(有限的xpath用法)xidel
:xpath3saxon-lint
:我自己的項(xiàng)目,包裝在@Michael Kay的Saxon-HE Java庫(kù)xpath3上
xmllint
附帶libxml2-utils
(可用作--shell
交換機(jī)的交互式外殼)
xmlstarlet
是xmlstarlet
。
xpath
附帶perl的模塊 XML::Xpath
xml_grep
附帶perl的模塊 XML::Twig
xidel
是 xidel
saxon-lint
使用SaxonHE 9.6,XPath 3.x(+復(fù)古兼容性)
例如:
xmllint --xpath '//element/@attribute' file.xml xmlstarlet sel -t -v "//element/@attribute" file.xml xpath -q -e '//element/@attribute' file.xml xidel -se '//element/@attribute' file.xml saxon-lint --xpath '//element/@attribute' file.xml

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
一個(gè)很可能已安裝在系統(tǒng)上的軟件包已經(jīng)存在python-lxml
。如果是這樣,可以在不安裝任何額外包的情況下實(shí)現(xiàn):
python -c "from lxml.etree import parse; from sys import stdin; print '\n'.join(parse(stdin).xpath('//element/@attribute'))"
添加回答
舉報(bào)