问题标签 [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.
xml - xmllint 不能与 xpath 一起正常工作
这就是我所拥有的。它显然没有做它应该做的,甚至崩溃了。有什么问题还是有任何其他工具可以帮助我在 BASH 中解析 XML?
xml - XMLSchema:是否可以计算无效文档的有效性(例如百分比)?
我lxml
在 Python 中使用 XML 模式定义来验证许多 XML 文档。很多这些文件都没有验证——目前预计它们不会验证——但如果我可以计算它们的有效性(以百分比形式)以用于报告目的,那将很有用。xmllint
如果能够提供有用的统计数据,我有能力使用或其他命令行工具。
xml - xsi:schemaLocation 实际使用了吗?
我正在使用xmllint工具来检查一些XML文件与它们的XSD模式。似乎该工具被调用为
...并且不包括从XML文件的xsi:schemaLocation属性中检索XSD文件的选项。此外,在相关的 w3.org 规范中,有一个内容如下:
这些提示的存在 [即 xsi:schemaLocation ] 不需要处理器获取或使用引用的模式文档,并且处理器可以自由地使用通过任何合适的方式获得的其他模式,或者根本不使用模式。
那么可以公平地说,在实践中xsi:schemaLocation属性相当于(软)文档吗?此外,由于允许传入的 XML 文档告诉应用程序如何验证它们可能不是一个好的做法,我看不到它的好处。
xml - xmllint DTD 验证语法
尝试验证 XML 文档;但是,xmllint 坚持将选项作为文件读取,因此我收到了 FileNotFound 异常。只是为了确认一下,我的 xmllint.exe 与我的 XML 文件位于同一文件夹中。我在 CMD 中找到目录并输入命令:
DTD 位于 xml 文件中。但是,xmllint 正在寻找文件~/--nout
。我曾尝试将文件放在选项之前,但是,这些选项不会被应用。我对此比较陌生,所以我毫不怀疑这个问题很明显。
提前致谢。
编辑:这是它拒绝工作的屏幕截图> :(
xml - 获取 xsi 类型的 xml 节点
我有一个入站 XML 文档。在 XML 文档中定义了 XSI:TYPE。
一个例子是:
我需要根据符合条件的列表检查 xsi 类型。
如何使用 xpath 提取类型以便进行比较?我必须在 unix bash 中进行最后的检查,所以我使用 XMLLINT 来尝试提取它们。
谢谢。
xml - 用于从 XML 中提取节点值的本机 shell 命令集
我正在尝试从 pom.xml 中提取节点的值:
我需要使用 shell 命令从 XML 中提取 artifactId 和版本。我有以下要求/意见:
- shell 脚本将在我们在工作中使用的构建程序集文件中完成,因此脚本越小越好。
- 由于它将在多个系统(通常是 RHEL5)上使用,我正在寻找可以在默认图像上本机运行的东西。
- 像这样的标签可以出现在 pom 的其他地方,所以我不能简单地为这些标签 awk。
我尝试了以下方法:
xpath
在我的 Mac 上工作,但在 RHEL 机器上默认不可用。同样对于xmllint --xpath
,我猜它仅适用于更高版本的xmllint
,我没有也无法强制执行。xmllint --pattern
似乎很有希望,但我似乎无法从xmllint --pattern '//project/parent/version' pom.xml
(打印整个 XML)或xmllint --stream --pattern '//project/parent/version' pom.xml
(无输出)中获得输出。
我意识到这是 SO 上的一个常见问题,但以上几点是我不能使用这些答案的原因。TIA 为您提供帮助。
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 - 实例文档
text - 解析 xpath 表达式后 xmllint 内容被截断
我正在运行以下 xmllint 命令,但内容被截断。
echo xpath '//create_context[@date="2013-01-31"]/instrument/file/text()' | xmllint --shell 文件.xml
/> 对象是一个节点集:集合包含3个节点:
1 文本
2 文本
3 正文
我的 xmllint 不采用 --xpath 作为参数
感谢您的帮助,如果有人已经提供了答案,我们很抱歉。
bash - 如何使用 xmllint 和 xpath 输出多行
我正在编写一个简单的 bash 脚本来解析一些 xml。我使用的是 sed 和 awk,但我认为 xmllint 更适合。
不幸的是,我对 xpath 完全陌生,所以我真的在战斗。
我正在尝试采用以下 xml:
......
并处理它以将“3”作为变量传递给 xpath 脚本,并输出如下内容:
换句话说,每个节点的内容的复杂组合,其中版本的值大于例如3。
xml - xml:如何缩进子元素但在新行上保留属性
我有一个如下的xml。
我需要缩进子元素,将 xml 文件的其余部分保持原样(即不应删除 dtd 部分和实体,属性应位于新行上)。xml 最终应如下所示:
我试过使用xmllint
and tidy
。xmllint
正在缩进子元素,但它没有将属性保留在新行中。tidy
另一方面,可以选择将属性保留在新行中,但无法缩进子元素。我也尝试过使用 perl 正则表达式。这可能可以用 XSLT 完成,但我并不精通它。