问题标签 [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.
xml - XMLStarles 移除结束标签
xmlstar 遇到问题。它删除了空标签,如何禁用它?
输入:
输出:
而且我想要相同的输出,所以不会删除结束引号。
希望有人能快速回答。
xmlstarlet - xmlstarlet - 需要根据另一个属性的值选择性地替换属性值
只是想知道是否有人可以帮助我。我目前正在构建一个 pfsense 防火墙,它使用 VPN 连接来保护流量。VPN 提供商确实提供了端口转发机制,但传入端口号每小时更改一次。我有一个脚本可以让我发现新端口,但我需要一种脚本方式来修改防火墙中的端口转发设置以匹配。
控制这一点的防火墙配置文件片段如下:
在上面的 XML 中,我们有两部分组成 pfsense 的端口转发规则。该部分中包含的<nat>
部分是端口转发。中的部分<rule>
是特定于接口的传入防火墙规则。两者都必须修改才能使新的端口转发设置生效。
我正在考虑使用 xmlstarlet 来修改配置文件,使用<descr>
作为我的密钥来确定要更改的部分。
我知道您可以拥有以下数据:
并修改它:
而且你可以有类似的东西:
并更新属性:
但是,我正在努力将两者合并,以便我有一个匹配<descr>="Torrent"
然后更新相关<port>
和<local-port>
属性的语句。
对于合适的 xmlstarlet 命令的任何帮助将不胜感激。
xml - 我可以通过一次调用 XMLStarlet 插入一个子元素并且仍然具有正确的格式吗?
我正在使用 cellux 的一个很棒的技巧在这个问题的现有元素下添加一个新元素(带有属性和子元素),并遇到了格式挑战。
从文件 example.xml 开始:
如果我使用 cellux 的方法通过一次调用 xml 来执行多个操作...
结果文件包含一个新的 XML 行。
如果我在单独的调用中多次调用 xml...
我得到格式良好(缩进)的 XML。
这两个文件在语法上是相同的,但我希望 XML 尽可能干净。
有谁知道一种对 xml 进行一次调用并仍然获得格式的干净方法?我知道我可以在最后通过“xml fo”运行它,但必须有更好的方法。
xmlstarlet - xmlstarlet:如何有条件地添加缺少的元素(upsert)
使用 XMLStarlet,我想在列表中添加另一个属性,
这很容易,除了“properties”标签是可选的并且可能在原始文档中丢失,在这种情况下需要有条件地创建“properties”标签。
xml - XPath 基本查询以返回标签内的元素/值的最大长度
XPath 基本查询返回标签内的元素/值的最大长度 ================================== ============================================
我们有大型 XML 数据文件。XMLSPY 无法打开此文件。
给定一个包含文本的元素列表:
我想了解 AttachText 元素是否存在数据及其大小/长度。
我尝试在 Linux 中使用 Grep/Sed,但没有得到想要的结果。
我不确定如何完成它。我喜欢从这个论坛的大脑中获取一些想法。
谢谢帮忙。
是否可以使用 xmlstarlet 来获得结果?
xml - xmlstarlet:如何按字母数字内容选择元素
在这篇文章中,我发现了如何按内容选择元素。完美运行!
但不是每个值:-(
这是我的xml:
通过 id、索引或时间戳进行选择非常有效。(“xml”是windows版本中的命令...):
但是如果我想通过另一个标签进行选择,例如“name”或“raw-archive-key”,就会出现问题:
此命令不会产生任何输出。在名称和原始存档密钥这两个标签中,都有字母数字字符。如果我将“asdf”更改为“01”,它会起作用!
那么如果它包含字母数字字符,如何按内容选择呢?
提前致谢!
xml - 在 xmlstarlet 中针对 XSD 验证 xml
我正在针对给定的 XSD 验证许多 XML 文件。它在命令行中打印一些错误。我需要将错误转换为一个变量。
我正在使用 Perl。我尝试了以下事情,但无法满足我的要求。
返回为 0 或 1
错误看起来像这样
test.xml:5340.23:元素“SP”:不需要此元素。
它只打印有效或无效,我也需要上述错误。
我使用了以下命令
让我知道一些想法来解决错误。
xpath - 为什么 xmlstarlet 说没有“ends-with”功能?
我正在使用xmlstarlet从以“v”结尾的liquibase XML 更改日志中提取changeSet
节点。viewName
但是,xmlstarlet 抱怨ends-with
XPATH 函数不存在:
XML 看起来有点像这样:
我确实知道 XPATH 表达式在其他方面是正确的,因为如果我将选择标准更改为,x:createView[@viewName="myviewnamev"]
那么它只会正确选择该changeLog
条目。
如何让 xmlstarlet 正确使用ends-with
?或者,是否有另一种方法来完成我想做的事情?
xml - XMLstarlet 和 Windows 任务操作
尝试使用 xmlstarlet 修改导出的 windows 任务
示例任务:
我想改变<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
和<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
“假”。
在 winodws 1.5.0 版上使用 XMLStarlet 在我看来这应该可行:
但它给了我:没有一个 XPath 匹配;要匹配默认命名空间中的节点,请使用 ' ' 作为前缀(参见手册中的第 5.1 节)。例如,使用 / :node 而不是 /node
期待 5.1 下的男人,但我仍然没有变得更聪明:-( 已测试
但这给了我
验证和http://schemas.microsoft.com/windows/2004/02/mit/task看起来已经关闭。
剂量有人对如何继续前进有建议吗?
我应该过去尝试使用 sed for windows 代替吗?
xml - xmlstarlet:按位置编号选择元素
我有这个 XML 文件
我想要做的是使用 xmlstarlet 选择每个第 4 个元素。
我设法使用 XmlPad 做到这一点,如下所示://table[@name='XFile']/row/field[4]/text(),但不幸的是我必须使用 xmlstarlet 来做到这一点。
此外,如果我删除 xObject 的属性/命名空间,似乎可以使用以下命令:xml sel -t -v "//table/row/field[4]/text()" test.xml
有谁知道如何做到这一点?这是我第一次尝试评估 xpath。
问候,斯特凡