【问题标题】:How to fetch xml attribute value in liquid template - XML to JSON Liquid如何在 Liquid 模板中获取 xml 属性值 - XML to JSON Liquid
【发布时间】:2020-06-10 09:12:20
【问题描述】:

我正在尝试使用液体模板获取 xml 属性值。示例如下。

XML 示例:

    <ns0:root xmlns:ns0="http://customnamespace.com" xmlns:ns1="http://customnamespace2.com">
  <ns1:product>
  <ns1:name QualifierID="std.lang.all" >TV</ns1:name>
  <ns1:price>499.9</ns1:price>
 </ns1:product>
 </ns0:root>

使用的液体模板:

{
"name": "{{content.product.name['QualifierID']}}",
"price": "{{content.product.price}}",
}

预期输出:

  {
"name": "std.lang.all",
"price": "499.9"

}

我尝试了几种方法,但无法获取 xml 属性值。它给了我 name 的空值。

最好的问候,

苏拉杰

【问题讨论】:

    标签: azure-logic-apps dotliquid xml-to-json liquid-template


    【解决方案1】:

    根据一些测试,我们似乎无法通过 Liquid 获取 xml 的属性(QualifierID)值。而且我也找不到任何有关通过液体获取 xml 属性值的有用信息。但我可以提供一个解决方法供您参考,请参考我下面的逻辑。

    1. 我初始化了一个名为xmlString 的变量,并使用您的xml 数据设置值来模拟您的情况。

    2. 我初始化了另一个名为jsonString 的变量,并通过将xmlString 转换为json 来设置它的值。

    3. 之后,使用“Parse JSON”动作解析我们上面得到的jsonString。然后使用“Compose”操作来组合您期望的 json 数据。(“解析 JSON”中的模式是由“初始化变量 2”的结果生成的)。

    希望对你有帮助~

    【讨论】:

    • 嗨@Hury:是的,它适用于 JSON 解析,但我试图看看我们是否可以直接从 xml 中获取它,目前看起来我们不能这样做。谢谢
    • 收到的 XML 是 ISO 8859-1 编码的,在这样做之后,它会在“°C”字段中留下额外的字符,例如“°C”
    猜你喜欢
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多