【问题标题】:XSLT - Add a XML node as headerXSLT - 添加一个 XML 节点作为标题
【发布时间】:2019-12-21 11:43:42
【问题描述】:

在我的流程中,我收到了一个 XML objects 列表,如下例所示:

<shop>..data..</shop>
<shop>..data..</shop>
<shop>..data..</shop>
<shop>..data..</shop>

我想像这样添加一个标头/节点:

<shops "xmlns": "http://www.demo.com","shops-id": "static-value">
    <shop>..data..</shop>
    <shop>..data..</shop>
    <shop>..data..</shop>
    <shop>..data..</shop>
</shops>

可以用 XSLT 添加吗?

【问题讨论】:

    标签: xml xslt xsd xml-parsing mule


    【解决方案1】:

    很大程度上取决于上下文,但一种方法是创建一个与任何列表中第一次出现的shop 匹配的模板,如下所示:

    <xsl:template match="shop[1]">
      <shops>
        <xsl:copy-of select=". | following-sibling::shop"/>
      </shops>
    </xsl:template>
    

    (我没有添加属性,因为您的示例输出不是有效的 XML)

    然后添加第二个模板以匹配剩余的shop 元素并丢弃它们,如下所示:

    <xsl:template match="shop"/>
    

    可能有更有效的方法,具体取决于您尝试执行的操作,但这种方法会在包含任何 shop 元素的任何元素中创建一个新的 shops 元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多