在 Bash 中使用 xmllint 从 WSDL 文件中检索信息
Retrieve information from WSDL file using xmllint in Bash
我可以使用 xmllint
从“.wsdl”文件中检索信息,就像我从 Bash 中的“.xml”文件中检索信息一样吗?
为了说明问题,我有一个 xml 文件,我使用 xmllint
在我的 Bash 脚本中通过以下方式获取某些信息:
init_variable=$(xmllint --xpath 'string(/tag1/tag2/tag3/attribute)' SampleMessages.xml)
其中“标签”代表我 xml 中的层次结构,属性是我从中检索信息的属性的内容。当文件为“.xml”
时,此代码有效
当我尝试对“.wsdl”文件执行相同操作时,出现错误。本质上,我正在尝试使用 xmllint
执行与上述相同的操作。但是,该文件中的每个标记都以 wsdl:
开头(参见下面的示例)。
我正在尝试 运行 以下内容:
serviceDescription=$(xmllint --xpath 'string(/wsdl:tag1/wsdl:tag2/wsdl:attribute)' ExampleFile.wsdl)
当我 运行 bash 脚本时,我的终端出现以下错误:
XPath error : Undefined namespace prefix
xmlXPathEval: evaluation failed
XPath evaluation failure
我不确定这个错误是什么意思,我也不知道我是否可以在“.wsdl”文件上 运行 xmllint
就像我在“.xml
找到解决办法,就是用xmlstarlet
更多信息也可以在this answer
中找到
我可以使用 xmllint
从“.wsdl”文件中检索信息,就像我从 Bash 中的“.xml”文件中检索信息一样吗?
为了说明问题,我有一个 xml 文件,我使用 xmllint
在我的 Bash 脚本中通过以下方式获取某些信息:
init_variable=$(xmllint --xpath 'string(/tag1/tag2/tag3/attribute)' SampleMessages.xml)
其中“标签”代表我 xml 中的层次结构,属性是我从中检索信息的属性的内容。当文件为“.xml”
时,此代码有效当我尝试对“.wsdl”文件执行相同操作时,出现错误。本质上,我正在尝试使用 xmllint
执行与上述相同的操作。但是,该文件中的每个标记都以 wsdl:
开头(参见下面的示例)。
我正在尝试 运行 以下内容:
serviceDescription=$(xmllint --xpath 'string(/wsdl:tag1/wsdl:tag2/wsdl:attribute)' ExampleFile.wsdl)
当我 运行 bash 脚本时,我的终端出现以下错误:
XPath error : Undefined namespace prefix
xmlXPathEval: evaluation failed
XPath evaluation failure
我不确定这个错误是什么意思,我也不知道我是否可以在“.wsdl”文件上 运行 xmllint
就像我在“.xml
找到解决办法,就是用xmlstarlet
更多信息也可以在this answer
中找到