xml - 在 Bash 中使用 xmllint 从 WSDL 文件中检索信息
问题描述
我可以使用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 错误:未定义的命名空间前缀
xmlXPathEval:评估失败
XPath 评估失败
我不确定错误是什么意思,也不知道我是否可以xmllint
像使用“.xml”一样在“.wsdl”文件上运行
解决方案
找到了解决方案,它是使用xmlstarlet
更多信息也可以在这个答案中找到
推荐阅读
- bulma - Bulma Extensions switch:我如何让它切换
- python - 从列表中的元组访问第n个元素,但元组的长度不同
- linux - 如何通过命令行在 linux 中打开唯一的每个用户的 firefox 实例?
- c - 如何将 double 舍入为 0.00005?
- javascript - 如何从特定索引遍历对象数组
- linux - 执行 git push 时出现大文件的问题
- terraform - 提供者不是 terraform 中的预期
- linux - 如何在不保留原始文件的情况下将日志文件一分为二?
- c# - 如何使用 microsoft graph api 在日历中创建事件?
- mysql - 以最近的时间戳连接表