Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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
将xpath-q-e命令转换为xmllint--xpath-one_Xml_Linux_Xpath_Xml Parsing - Fatal编程技术网

将xpath-q-e命令转换为xmllint--xpath-one

将xpath-q-e命令转换为xmllint--xpath-one,xml,linux,xpath,xml-parsing,Xml,Linux,Xpath,Xml Parsing,我对XML文件非常熟悉,希望转换此命令: xpath-q-e”/ns2:softwareSystem/module/rootPath[not(@xsi:type)]/@name“\file.xml 对于这个xmllint--xpath 以下是一个例子: 感谢您的帮助您需要的是: xmllint --xpath "//*[local-name()='softwareSystem']/module/rootPath[not(@*[local-name()='type'])]/@name&q

我对XML文件非常熟悉,希望转换此命令:

xpath-q-e”/ns2:softwareSystem/module/rootPath[not(@xsi:type)]/@name“\file.xml

对于这个xmllint--xpath

以下是一个例子:


感谢您的帮助

您需要的是:

xmllint --xpath "//*[local-name()='softwareSystem']/module/rootPath[not(@*[local-name()='type'])]/@name" file.xml
请注意,当您可以在应用程序中声明名称空间时,通常不建议使用
local-name()

如果可以,可能最好使用
xmlstarlet
,因为名称空间和名称空间前缀更好(您可以直接使用
/ns2:softwareSystem
/\ux:softwareSystem

编辑:如果您正在处理一个变量(例如:
variable=“foo”
),您可以使用以下内容:

xmllint --xpath "string(//*[local-name()='softwareSystem']/module[@name='"$variable"']/@id)" file.xml

这是一个变量xpath-q-e“字符串(/ns2:softwareSystem/module[@name=\“$variable\”]/@id)”file.xml完美答案。非常感谢@E.wiest你能看看这个问题吗