我有一些XML代码,可以通过curl获得。对于管道和xmllint,我想从标签set
获取属性sun
和echo 'cat //sun/@rise|//sun/@set' | xmllint --shell xmlList.txt
的值,并且其格式应类似于2018-10-01T07:02:40。
我尝试了两种方法(在此示例中,我使用file-xmlList.txt进行了简化):
输入:
/ > -------
rise="2018-09-30T19:26:30"
-------
set="2018-10-01T07:02:40"
/ >
输出
xmllint --xpath 'string (//sun/@set) and string (//sun/@rise)' xmlList.txt
输入:
`true`
输出
<?xml version="1.0" encoding="UTF-8"?>
<current>
<city id="2118647" name="Petropavlovsk-Kamchatsky">
<coord lon="158.65" lat="53.02"></coord>
<country>RU</country>
<sun rise="2018-09-30T19:26:30" set="2018-10-01T07:02:40"></sun>
</city>
<temperature value="282.15" min="282.15" max="282.15" unit="kelvin"></temperature>
<humidity value="100" unit="%"></humidity>
<pressure value="992" unit="hPa"></pressure>
<wind>
<speed value="2" name="Light breeze"></speed>
<gusts></gusts>
<direction value="210" code="SSW" name="South-southwest"></direction>
</wind>
<clouds value="92" name="overcast clouds"></clouds>
<visibility value="10000"></visibility>
<precipitation value="0.39" mode="rain" unit="3h"></precipitation>
<weather number="500" value="light rain" icon="10n"></weather>
<lastupdate value="2018-10-01T09:00:00"></lastupdate>
</current>
有人可以告诉我如何获取这种格式的值 文件xmlList.txt-
{{1}}
答案 0 :(得分:0)
下面的XPath应该返回用逗号分隔的值。其他输出格式也应该可行
xmllint --xpath 'concat(//sun/@rise,",",//sun/@set)' test.xml
输出:
2018-09-30T19:26:30,2018-10-01T07:02:40
要用换行符分隔值:
xmllint --xpath 'concat(//sun/@rise,"|",//sun/@set)' test.xml | tr '|' '\n'