Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
xmlstarlet搜索属性_Xml_Xpath_Xml Parsing_Xmlstarlet - Fatal编程技术网

xmlstarlet搜索属性

xmlstarlet搜索属性,xml,xpath,xml-parsing,xmlstarlet,Xml,Xpath,Xml Parsing,Xmlstarlet,XML示例: <?xml version="1.0" encoding="UTF-8"?> <profile> <section name="Vision"> <key name="Name" value="BBBB"/> <key name="Name_Remark" value="GGGG"/> <key name="Position" value="30"/> </section> </profile

XML示例:

<?xml version="1.0" encoding="UTF-8"?>
<profile>
<section name="Vision">
<key name="Name" value="BBBB"/>
<key name="Name_Remark" value="GGGG"/>
<key name="Position" value="30"/>
</section>
</profile>

如何使用名为“Position”的xmlstarlet获取价值。现在是30岁


谢谢。

您可以使用此命令行

xmlstarlet sel -t -v "/profile/section/key[@name='Position']/@value" -n input.xml
sel
命令告诉xmlstarlet进行选择

-t
选项告诉xmlstarlet
-t
后面的选项用于模板

-v
告诉xmlstarlet打印XPath表达式的值

-n
告诉xmlstarlet打印新行。(并非完全必要。)


所有这些都可以通过从命令行运行
xmlstarlet sel--help
找到。

感谢您的支持。我还有一个问题:如何在一行中获得逗号分隔的输出-例如30,BBBB?Thanks@Max-M-请创建另一个单独的问题。请随意添加链接,作为对此问题的评论。