gpt4 book ai didi

没有 xsl 输出的 xml 逻辑

转载 作者:行者123 更新时间:2023-12-03 17:05:31 30 4
gpt4 key购买 nike

我正在寻找一种简单的方法(实用程序、函数、工具)来对 xml 格式的数据运行 bool 逻辑,并且很可能通过 shell 脚本。这与翻译 xml 或创建其他文档无关,而是允许基本操作 <、>、=、!= 的简单逻辑决策

假设给定一个 xml 文件,2012_04_21.xml包含(除其他外)<data>...<price>6.50</price>...</data> 的 xml 键和值

我理想的工具是:

cooltool --input 2012-04-21.xml --eval "price <= 6.50"

根据给定的逻辑返回真、假、空或其他东西

grep 适用于 'has' 或 '==' 类型的操作。 grep '<key>value</key>' 2012_04_21.xml不提供任何内容或可以 bool 化的匹配字符串。

但是, grep 无法满足以下原因:
1. price > 5.00 不可能
2. 无法处理像 data/price > 5.00 这样的层次结构

XPATH 逻辑是完全足够的,但我正在努力想出一种在这种情况下利用它的方法。
xsltproc mylogic.xsl 2012-04-21.xml

嗯,也许是 xsltproc mylogic.xsl 2012-04-21.xml | grep true 的组合

我试一试。

欢迎任何其他想法。

最佳答案

这听起来像是你可以用一个简单的 XPath 查询来做的事情;不太确定你的源文件有多复杂,但这听起来像你可以用 xmllint 做的事情
xmllint --xpath "boolean(//price[text()<=6.50])" xmlfile.xml
您可以编写自己的实用程序脚本...注意我的 XPath 查询假设

  • 您的 XML 文件没有固定的结构
  • 您的 XML 文件可以有可重复的 <price>标签

  • .
    #!/bin/bash

    xmllint --xpath "boolean(//price[text()<=$2])" $1
    ./ingest.sh xmlfile.xml 6.50
    如果您想使用 grep,可能需要查看现有问题 [1,2,3]。

    [1] How to find information inside a xml tag using grep?
    [2] How to parse XML in Bash?
    [3] How to (e) grep XML for certain tag content?

    关于没有 xsl 输出的 xml 逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14107501/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com