问题标签 [xmllint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1423 浏览

xml - 如果另一个子值匹配,则获取子值

我有一个需要从 shell 解析的 XML 文件。它看起来有点像这样:

请注意,things 的子节点的顺序是任意的。在我的真实数据中,每个thing.

现在, 的价值foo是独一无二的。我需要获取子节点的值,例如其子bar节点thingfooabc。我尝试过使用 XPath 查询,xmllint但没有成功。我找不到比赛;或者,如果我只是用更一般的查询进行测试,我会得到整个树。

我希望只是得到true

我究竟做错了什么?我无法访问--xpath提到的其他问题的标志,所以如果这是答案,那么我就不走运了。

0 投票
1 回答
5194 浏览

bash - xmllint xpath 不会在空集上打印错误

我在 bash 脚本中使用 xmllint 对某些数据执行 xpath。xpath 并不总是与数据匹配,这没关系。来自 xmllint 文档:

XPath set is empty当 xmllint 找不到任何匹配项时,是否有禁用/隐藏输出?

0 投票
4 回答
558 浏览

xml - 为什么使用两种不同的方式验证我的 XML 会得到不同的结果?

我正在尝试使用 XSD 文件验证 XML 文件,但它不起作用,我不知道为什么。

我发现我们可以使用该示例在终端上执行此操作:

xmllint --noout --schema owl2-xml.xsd camera.owl

但它会产生一个错误,我特别不明白。

但是如果我选择一个验证器 xml 文件(这个 : http://mowl-power.cs.man.ac.uk:8080/validator/

我的 XML 文件已经过验证!

我不明白为什么,这不起作用......当我选择的 XML 模式(应该)与验证器链接相同时。

XML 模式来自那里:http://www.w3.org/2009/09/owl2-xml.xsd(owl2) 验证器也使用 owl2 结构。所以......我错过了什么?

示例猫头鹰文件

这是我正在使用并尝试验证camera.owl的示例

0 投票
1 回答
1923 浏览

linux - 如何管道 grep xmllint 结果?

尝试使用 xmllint 来验证一堆 XML。

我使用命令: xmllint --noout --schema MySchema.xsd dir/*.xml

这将向标准输出打印每个文件的列表以及它是否已验证或失败。我希望修剪此列表并仅显示那些无法验证的文件。

我习惯于在标准输出上做一个管道 grep 来过滤结果。例如,如果我执行 ls | grep "config" 它将仅列出名称中带有 config 的那些文件。

但由于某种原因,执行上述命令后跟 | grep "失败" 或 | grep -v "validates" 对减少扔到控制台标准输出的(大量)文本行数没有任何影响。无论如何都会提供完整列表

就好像 xmllint 的输出不是管道的有效输入。

0 投票
1 回答
1354 浏览

bash - Remove invalid XML after xmllint validation

I receive a large XML file and often the XML file do not validate to schema file. Instead of droping the whole xml file I would like to remove the "invalid" content and save the rest of the XML file.

I'm using xmllint to validate the xml by this command:

The XSD file (in this example named testSchedule.xsd):

And the XML file (In this example named testXML.xml):

Then I get the this result of the xmllint command:

And that is all correct - There is two errors in the XML file.

Now I would like to have a tool of some kind to remove entry 3 and 4 so I end up with this result:

Does anybody in here have a tool that can do this? I'm currently using bash scripting and the xmllint. I really hope somebody can help.

0 投票
1 回答
100 浏览

xml - xml 读取许多值并在 sh 中回显它们

我有一个名为 XML 的 xml 变量,如下所示:

我用命令回应他们

我明白了

但现在我有多个值,xml现在是这样的:

还有 TEXT3 等等。

我如何让我的程序显示:

并显示在

我不能再使用以前的方法了,只能使用“while”之类的东西和 xml 命令来获取值?谢谢!

0 投票
1 回答
670 浏览

xml - 目标命名空间在 XSD 中被忽略

我有一些供应商提供的 XML 模式。他们来了:

OCISchemaBASE.xsd

OCISchemaLogin.xsd

OCISchemaDataTypes.xsd

这是我根据这些模式创建的 XML 文档:

当我尝试使用 xmllint 针对架构验证此文档时,会发生以下验证失败:

尽管在 OCISchemaBASE.xsd 中声明了目标命名空间,为什么BroadsoftDocument元素不在命名空间中?C

同样的问题是关于sessionIdOCIMessage 类型中的元素。

0 投票
1 回答
888 浏览

unix - 无法使用 pom 文件中的 artifactId 获取版本

我对 unix shell 脚本相当陌生。尝试从 xpom.xml 捕获某些工件的版本信息但没有成功。

我无法在系统中安装任何额外的东西,检查是否安装了 xmllint。任何使用直接 unix 命令或 xmllint 的解决方案都值得赞赏。


文件=~/xpom.xml


我需要捕获 oradatabase artifactId 的版本。解决方案应返回 7.7.7。

我尝试跟随但没有成功(从这个网站获得这些提示并对其进行修改以满足我的需要:

尝试1:

xmllint --xpath '//project/dependencies/dependency[artifactId='oradatabase']/@value' xpom.xml

它抛出未知选项--xpath

尝试2:

-- 返回未找到。

感谢您对此的任何帮助。

0 投票
1 回答
661 浏览

xml - 使用 xmllint 即时处理“&”

我有大量的 xml 文件要用 xmllint 解析。我只需要提取一两个节点的内容,然后将它们放入一些新文件中。

在他们找到我之前,我无法控制他们的格式。

我试图找到一种优雅的方式来处理像“&”(和号)这样的字符。它们并不总是在源 xml 中转义。

有什么方法可以在单个 xmllint 命令中处理这个问题,还是我需要先准备 xml 文件?

0 投票
1 回答
1412 浏览

xml - 通过 XML 节点列表迭代/循环

我需要加载一个 XML 文件并遍历其中的节点列表,以使用每个节点的属性作为脚本的参数为每个节点执行一个 shell 脚本。有任何想法吗?任何帮助都感激不尽。

XML 文件示例: