加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用XSLT从嵌套XML转换为扁平化XML结构

发布时间:2020-12-16 22:52:46 所属栏目:百科 来源:网络整理
导读:我在XSLT中尝试此任务:使用嵌套元素将 XML转换为嵌套较少的 XML格式. 转换自: example value aaa value bbb value ccc /value /value /value/example 至: example valueaaa/value valueaaa/value valuebbb/value valuebbb/value valueccc/value valueccc/
我在XSLT中尝试此任务:使用嵌套元素将 XML转换为嵌套较少的 XML格式.

转换自:

<example>
 <value>
  aaa
   <value>
    bbb
      <value>
       ccc
      </value>
   </value>
 </value>
</example>

至:

<example>
  <value>aaa</value>
  <value>aaa</value>
  <value>bbb</value>
  <value>bbb</value>
  <value>ccc</value>
  <value>ccc</value>
</example>

我一直在尝试找到解决方案,但我只有这个:

<xsl:template match="/">
      <exmaple>
         <xsl:apply-templates/>
      </exmaple>
    </xsl:template>

    <xsl:template match="//value/text()">

     <value><xsl:value-of select="."/></value>
     <value><xsl:value-of select="."/></value>

    </xsl:template>

结果(空标签问题):

<exmaple>
<value>
aaa
</value><value>
aaa
</value><value>
bbb
</value><value>
bbb
</value><value>
ccc
</value><value>
ccc
</value><value>
</value><value>
</value><value>
</value><value>
</value>
</exmaple>

解决方法

使用XPath // value / text()[1]尝试此模板:

<xsl:template match="//value/text()[1]">
    <value><xsl:value-of select="." /></value>
    <value><xsl:value-of select="." /></value>
</xsl:template>

诀窍是你需要从每个< value>中选择第一个文本节点,因为text()将返回它们的集合.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读