Xml 解析curl输出命令行
响应curl命令Xml 解析curl输出命令行,xml,bash,curl,Xml,Bash,Curl,响应curl命令curl-ik-umax:pass-xget-i-H“Content-Type:application/xml”https://1.2.3.4:943/cloud/rest/projects我得到了一个巨大的xml,其中包含许多类似于以下内容的实体 <project xlink:href="https://1.2.3.4:943/cloud/projects/13389/" > <approvedservers xlink:href="h
curl-ik-umax:pass-xget-i-H“Content-Type:application/xml”https://1.2.3.4:943/cloud/rest/projects
我得到了一个巨大的xml,其中包含许多类似于以下内容的实体
<project xlink:href="https://1.2.3.4:943/cloud/projects/13389/" >
<approvedservers xlink:href="https://1.2.3.4:943/cloud/projects/13389/approvedservers/" ></approvedservers>
<requestUser>maxadmin</requestUser>
<removed xlink:href="https://1.2.3.4:943/cloud/projects/13389/removed/" ></removed>
<rejected>false</rejected>
<pending xlink:href="https://1.2.3.4:943/cloud/rest/projects/13389/pending/" ></pending>
<name>4BSm3ZQ1T6q7xBR2xT2PdQ</name>
<servers xlink:href="https://1.2.3.4:943/cloud/rest/projects/13389/servers/" ></servers>
<ticketId>ticketId</ticketId>
<approved>true</approved>
<history xlink:href="https://1.2.3.4:943/cloud/rest/projects/13389/history/" ></history>
<startTime>1502214154651</startTime>
<requestedServerCount>1</requestedServerCount>
<applicationid>4336525</applicationid>
<provision>provision</provision>
<customer>None</customer>
<endTime>253402300740000</endTime>
</project>
maxadmin
错误的
4BSm3ZQ1T6q7xBR2xT2PdQ
ticketId
符合事实的
1502214154651
1.
4336525
提供
没有一个
253402300740000
如何解析此输出以获取所有URL中相同的项目ID
https://1.2.3.4:943/cloud/rest/projects/13389/pending/
基于4BSm3ZQ1T6q7xBR2xT2PdQ
。基本上,我想找到用户名的项目id。您可以使用xmlstarlet
搜索所有name
元素,其中包含所需文本作为值,然后输出兄弟元素pending
(使用。/pending/@href:xlink
,这意味着“上一级,然后是元素挂起
,然后是属性xlink:href
):
是否可以将内容类型设置为
json
,这样就可以使用jq
轻松解析?您能否尝试使用“内容类型:application/json”
?使用此答案,您可以在xpath中指定条件:-v//project[name='$name']/@xlink:href“
@glennjackman是的,这样更好。如果我不每天使用xmlstarlet
,我会忘记一切:-)太正确了。每次我都要做xmlstarlet sel--help | less
。等你开始使用…@glennjackman哦,jq
这个工具可以让xmlstarlet
和退出vim
看起来很简单:-)-这就是我左边头发的来源。。。
xmlstarlet sel -t --match '//name[text() = "4BSm3ZQ1T6q7xBR2xT2PdQ"]' -v "../pending/@xlink:href" file.xml