如何使用XSLT添加子元素?

尼基

我在输入请求下面有这个。我们将获得近10个包含Book和Date信息的标签<shop>我希望每个信息都在标签之间我应该如何用xslt编写它?

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:p="http://www.blah.com">
     <soapenv:Header/>
    <soapenv:Body>
    <p:order>
    <p:shop>
    <p:Book>Guru</p:Book>
    <p:date>12-2-2020</p:date>
    <p:Book>jungle</p:Book>
    <p:date>13-1-2023</p:date>
    <p:Book>Sports</p:Book>
    <p:date>13-1-2023</p:date>
    </p:shop>
    </p:order>
</soapenv:Body>
</soapenv:Envelope>

预期产量:

 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:p="http://www.blah.com">
         <soapenv:Header/>
        <soapenv:Body>
        <p:order>
        <p:shop>
        <p:Author>Guru</p:Author>
        <p:startdate>12-2-2020</p:startdate>
        <p:shop>
        <p:Author>jungle</p:Author>
        <p:startdate>13-1-2023<p:/startdate>
        <p:shop>
        <p:Author>Sports</p:Author>
        <p:startdate>13-1-2023</p:startdate>
        </p:shop>
        </p:order>
    <e:shop>
    </soapenv:Body>
    </soapenv:Envelope>

我的xslt:

 <xsl:for-each select="//Order">
                           <xsl:value-of select="following-sibling::date[1]"/>
                         <p:Author>
                             <xsl:value-of select="$Book"/>
                          </p:Author>
                           <p:StartDate>
                             <xsl:value-of select="$date"/>
                          </p:StartDate>
                     </xsl:for-each>
michael.hor257k

您显示的输出不是格式正确的XML。假设您要获得以下输出:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:p="http://www.blah.com">
  <soapenv:Header/>
  <soapenv:Body>
    <p:order>
      <p:shop>
        <p:Book>Guru</p:Book>
        <p:date>12-2-2020</p:date>
      </p:shop>
      <p:shop>
        <p:Book>jungle</p:Book>
        <p:date>13-1-2023</p:date>
      </p:shop>
      <p:shop>
        <p:Book>Sports</p:Book>
        <p:date>13-1-2023</p:date>
      </p:shop>
    </p:order>
  </soapenv:Body>
</soapenv:Envelope>

尝试:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:p="http://www.blah.com">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>

<!-- identity transform -->
<xsl:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>

<xsl:template match="p:shop">
    <xsl:for-each select="p:Book">
        <p:shop>
            <xsl:copy-of select=". | following-sibling::p:date[1]"/>
        </p:shop>
    </xsl:for-each>
</xsl:template>

</xsl:stylesheet>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用XSLT添加/插入子元素

来自分类Dev

如何使用 xslt 添加根元素?

来自分类Dev

如何使用XSLT转换添加子节点的XML?

来自分类Dev

使用xslt将子元素添加到xml中的列表中不起作用

来自分类Dev

如何使用Expandable ListView在NavigationDrawer中添加子元素

来自分类Dev

Java如何使用JAXB注释在XML中添加子元素

来自分类Dev

XSLT:使用地图更改子元素

来自分类Dev

在 XSLT 文件中使用子元素?

来自分类Dev

使用XSLT添加新的XML元素

来自分类Dev

在 XSLT 中为子元素添加多个条件

来自分类Dev

如何使用 XSLT 子字符串化 XML 元素的值

来自分类Dev

如何使用 xslt 将父节点命名空间复制到子元素?

来自分类Dev

如何使用XPATH / XSLT检查子节点是否存在,因此不向其添加重复节点?

来自分类Dev

如何使用XSLT将计数器添加到元素名称

来自分类Dev

我如何使用xslt将变量名称空间添加到元素

来自分类Dev

如何使用xslt将单个元素添加到xml的末尾?

来自分类Dev

如何使用xslt删除重复的根元素

来自分类Dev

如何使用xslt转换嵌套的XML元素?

来自分类Dev

如何使用XSLT匹配元素并输出HTML?

来自分类Dev

如何使用 xslt 移动 xml 元素?

来自分类Dev

如何使用 xslt 插入/替换元素

来自分类Dev

如何重命名根和子元素XSLT

来自分类Dev

使用XSLT访问子节点并检索元素值

来自分类Dev

使用XSLT访问子节点并检索元素值

来自分类Dev

如何使用XSLT添加父节点

来自分类Dev

如何使用XSLT添加父节点

来自分类Dev

如何通过XSLT删除和添加选择元素?

来自分类Dev

如何在根元素之后添加子元素

来自分类Dev

防止使用xslt将xmlns =“”添加到复制元素

Related 相关文章

热门标签

归档