问题标签 [xmlstarlet]
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.
xpath - 为什么 xmlstarlet 不选择所有节点?
xmlstarlet sel -t -v "//@category" books.xml
仅返回烹饪。如何获取所有名为类别的属性?
奖励问题:如何在不使用编辑器或程序打开 XML 文件的情况下评估 XPath 查询(我想要一个快速工具)。问题是将大文件加载到内存中会使编辑器崩溃。不要告诉我 eXist 是我最好的选择吗?
sed - Xmlstarlet 和 sed 替换文件中的字符串
我有大量的 html 文件。我需要分别用html实体 &nsbquo 和 &quto 替换所有的 , 和 "。为此我需要通过两个步骤来成功:1) 找到之间的所有文本
标签。我只需要在此文本之间替换标签。2) 使用 sed 替换所有必需的字符串
我的命令是:xmlstarlet sel -t -v "*//p" "index.html" | sed 's/,/\&nsbquo/'
这可行,但现在我不知道如何将更改放回 index.html 文件。在 sed 我们有 -i 选项,但为此我需要使用 sed 命令指定文件名。但就我而言,我必须使用 | 从 html 文件中过滤掉所需的字符串。
请帮忙。从 2 天开始,我做了很多搜索,但没有运气。
谢谢你,迪维亚。
xmlstarlet - 如何使用 XMLStarlet 在另一个元素之后直接插入一个元素?
使用此示例 XML:
如何使用 XMLStarlet<element-c/>
在元素之后直接插入元素?<element-b/>
xml - xmlstarlet 编辑插入语法
我正在尝试使用 xmlstarlet 插入一个新元素,但是当我运行该命令时,它只会列出我要插入的 xml 文件。任何建议都会很棒。
xml - xmlstarlet 更新一个属性
我正在编写一个处理 xml 文件的脚本。我想用 xmlstarlet 更新这个 xml 文件中的属性值,但它不起作用。
这是 xml 文件的示例:
这是在自定义属性节点中更新名称为“XF86Display”的属性的命令。
此输出与输入严格相同...
谢谢
xml - 将 INI 转换为 XML?或者任何通用的遗留平面文件?XSL?来自 xmlstarlet 还是 xsltproc?
我正在寻找从 INI 到 XML 的某种转换,INI 语法很简单。我不希望使用 sed/awk/grep,这确实应该在 XML 工具中完成。
这可以用常规 XSL 完成吗?我听说过 Xflat,但我可以通过用 C 编译的工具来做到这一点吗?例如 xsltproc 或 xmlstarlet。
通用 INI 语法是这样的......
这将是这样的xml...
任何帮助将不胜感激。
xml - xml解析一个值
我有一个不断附加以下 xml 的文件。我想从变量中得到的是 jobStatus 中的 percentComplete 。我怎么会得到那个?不知道如何解析xml。我尝试使用 XMLStarlet 但失败了。我想在我可以在 shell 中使用的变量中获取 percentComplete 。
command-line-interface - XMLStarlet 不选择任何内容
我有一个典型的 pom.xml,想打印 groupId、artifactId 和 version,用冒号分隔。我认为XMLStarlet是正确的工具。我尝试了几种方法,但我总是得到一个空行。
预期输出:
实际输出:空行
即使我尝试只打印 groupId 我什么也得不到:
我确信该工具可以看到元素,因为我可以毫无问题地列出它们:
打印以下内容(正确):
怎么了?
这是 pom.xml 的精简版:
compilation - 在旧系统中编译最新版本的包以供本地使用
我需要知道是否可以在旧的、古老的系统中编译最好和最新的包。为什么?好吧,我的公司受到限制:我需要在旧的 Debian 3.0 服务器上开发一个应用程序,我更愿意使用更新的软件来完成我的任务。不幸的是,我不允许升级或安装任何软件包。
具体来说,我想使用 xmlstarlet 轻松地解析 XML 文件。该服务器没有安装它;如果我下载了系统支持的旧版本的 xmlstarlet,它太旧了,以至于我失去了我需要的功能。它只有三个依赖项:libc6、libxml2 和 libxslt1.1(已安装但对于较新版本的 xmlstarlet 来说太古老了)
所以问题是:有没有办法我可以下载这个包及其依赖项(我认为它们很少而且很简单)并以某种方式编译它们以在本地工作(不一定在系统的路径上,只是在工作目录中)而不影响任何方式的同名旧包?
这个系统也没有 PEAR,也没有 PHP5,也没有 xmllint,我想避免用 PHP4 编码来解析这些 XML。我真的很想使用 xmlstarlet。
xml - 通过它们之间的值搜索 XML 标记并在 shell 脚本中插入新标记
假设我有这个包含这些内容的 test.xml 文件
我想为“hello”对象添加一个新的 <s>2.0</s>,如下所示。
我必须使用 shell 脚本来做到这一点。有一种搜索 XML DOM 并使用此处给出的 xmlstarlet 添加标签的方法http://www.technomancy.org/xml/add-a-subnode-command-line-xmlstarlet/。但这仅描述了根据属性值向某些节点添加新标签。我没有任何属性。我该怎么做 ?有没有办法使用 grep 做到这一点?