问题标签 [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 投票
2 回答
2929 浏览

xml - xmllint 不能与 xpath 一起正常工作

这就是我所拥有的。它显然没有做它应该做的,甚至崩溃了。有什么问题还是有任何其他工具可以帮助我在 BASH 中解析 XML?

0 投票
1 回答
147 浏览

xml - XMLSchema:是否可以计算无效文档的有效性(例如百分比)?

lxml在 Python 中使用 XML 模式定义来验证许多 XML 文档。很多这些文件都没有验证——目前预计它们不会验证——但如果我可以计算它们的有效性(以百分比形式)以用于报告目的,那将很有用。xmllint如果能够提供有用的统计数据,我有能力使用或其他命令行工具。

0 投票
2 回答
1139 浏览

xml - xsi:schemaLocation 实际使用了吗?

我正在使用xmllint工具来检查一些XML文件与它们的XSD模式。似乎该工具被调用为

...并且不包括从XML文件的xsi:schemaLocation属性中检索XSD文件的选项。此外,在相关的 w3.org 规范中,有一个内容如下:

这些提示的存在 [即 xsi:schemaLocation ] 不需要处理器获取或使用引用的模式文档,并且处理器可以自由地使用通过任何合适的方式获得的其他模式,或者根本不使用模式。

那么可以公平地说,在实践中xsi:schemaLocation属性相当于(软)文档吗?此外,由于允许传入的 XML 文档告诉应用程序如何验证它们可能不是一个好的做法,我看不到它的好处。

0 投票
1 回答
4768 浏览

xml - xmllint DTD 验证语法

尝试验证 XML 文档;但是,xmllint 坚持将选项作为文件读取,因此我收到了 FileNotFound 异常。只是为了确认一下,我的 xmllint.exe 与我的 XML 文件位于同一文件夹中。我在 CMD 中找到目录并输入命令:

DTD 位于 xml 文件中。但是,xmllint 正在寻找文件~/--nout。我曾尝试将文件放在选项之前,但是,这些选项不会被应用。我对此比较陌生,所以我毫不怀疑这个问题很明显。

提前致谢。

编辑:这是它拒绝工作的屏幕截图> :(

描述文件未找到异常的屏幕截图

0 投票
0 回答
1094 浏览

xml - 获取 xsi 类型的 xml 节点

我有一个入站 XML 文档。在 XML 文档中定义了 XSI:TYPE。
一个例子是:

我需要根据符合条件的列表检查 xsi 类型。

如何使用 xpath 提取类型以便进行比较?我必须在 unix bash 中进行最后的检查,所以我使用 XMLLINT 来尝试提取它们。

谢谢。

0 投票
6 回答
75176 浏览

xml - 用于从 XML 中提取节点值的本机 shell 命令集

我正在尝试从 pom.xml 中提取节点的值:

我需要使用 shell 命令从 XML 中提取 artifactId 和版本。我有以下要求/意见:

  1. shell 脚本将在我们在工作中使用的构建程序集文件中完成,因此脚本越小越好。
  2. 由于它将在多个系统(通常是 RHEL5)上使用,我正在寻找可以在默认图像上本机运行的东西。
  3. 像这样的标签可以出现在 pom 的其他地方,所以我不能简单地为这些标签 awk。

我尝试了以下方法:

  1. xpath在我的 Mac 上工作,但在 RHEL 机器上默认不可用。同样对于xmllint --xpath,我猜它仅适用于更高版本的xmllint,我没有也无法强制执行。
  2. xmllint --pattern似乎很有希望,但我似乎无法从xmllint --pattern '//project/parent/version' pom.xml(打印整个 XML)或xmllint --stream --pattern '//project/parent/version' pom.xml(无输出)中获得输出。

我意识到这是 SO 上的一个常见问题,但以上几点是我不能使用这些答案的原因。TIA 为您提供帮助。

0 投票
3 回答
21468 浏览

xml - xmllint :针对两个 XSD 模式(信封/有效负载)验证 XML 文件

我正在使用xmllint进行一些验证,并且我有一个 XML 实例文档,它需要针对两种模式进行验证:一种用于外部“信封”(其中包括任何元素),另一种用于特定的有效负载。假设A.xsd是信封模式,B.xsd是有效负载模式(有不同的可能有效负载),ab.xml是有效的 XML 实例文档(我在帖子末尾提供了一个示例)。

我在同一目录中本地提供了所有三个文件,并且正在使用xmllint执行验证,提供外部(信封)模式的位置作为模式参数:

...然而,尽管我在实例文档中提供了 A.xsd 和 B.xsd 的位置(使用xsi:schemaLocation元素)xmllint未能找到它并抱怨:

所以显然xmllint没有读取xsi:schemaLocation元素。我知道xmllint可以配置目录,但我无法让xmllint找到这两个模式。在验证实例文档时,我应该如何让xmllint考虑这两种模式,或者是否可以使用其他命令行实用程序或图形工具?

SSCCE

A.xsd - 信封模式

B.xsd - 有效负载模式

ab.xml - 实例文档

0 投票
1 回答
821 浏览

text - 解析 xpath 表达式后 xmllint 内容被截断

我正在运行以下 xmllint 命令,但内容被截断。

echo xpath '//create_context[@date="2013-01-31"]/instrument/file/text()' | xmllint --shell 文件.xml

/> 对象是一个节点集:集合包含3个节点:

1 文本

2 文本

3 正文

我的 xmllint 不采用 --xpath 作为参数

感谢您的帮助,如果有人已经提供了答案,我们很抱歉。

0 投票
1 回答
1203 浏览

bash - 如何使用 xmllint 和 xpath 输出多行

我正在编写一个简单的 bash 脚本来解析一些 xml。我使用的是 sed 和 awk,但我认为 xmllint 更适合。

不幸的是,我对 xpath 完全陌生,所以我真的在战斗。

我正在尝试采用以下 xml:

......

并处理它以将“3”作为变量传递给 xpath 脚本,并输出如下内容:

换句话说,每个节点的内容的复杂组合,其中版本的值大于例如3。

0 投票
1 回答
465 浏览

xml - xml:如何缩进子元素但在新行上保留属性

我有一个如下的xml。

我需要缩进子元素,将 xml 文件的其余部分保持原样(即不应删除 dtd 部分和实体,属性应位于新行上)。xml 最终应如下所示:

我试过使用xmllintand tidyxmllint正在缩进子元素,但它没有将属性保留在新行中。tidy另一方面,可以选择将属性保留在新行中,但无法缩进子元素。我也尝试过使用 perl 正则表达式。这可能可以用 XSLT 完成,但我并不精通它。