小编Gan*_*ori的帖子

XSLT 2.0 如何标记多个元素的值并将它们关联在一起以形成结果

我刚刚开始研究 XSLT。我的输入和预期输出如下,XSLT 也在下面给出。我现在面临两个问题

  1. 正如您所看到的,我正在动态分配变量名称并引发以下异常 net.sf.saxon.trans.XPathException: Required item type of the context item for the attribute axis is node(); supplied value has item type xs:string
  2. 当我将变量名设置为某个静态字符串时,我没有收到异常,但我没有看到预期的输出,即我想知道如何映射标记化的字符串

输入

<students>
  <field name="id">1,2,3</field>
  <field name="name">a,b,c</field>
 </students>
Run Code Online (Sandbox Code Playgroud)

预期产出

<students>
<student>
    <id>1</id>
    <name>a</name>
</student>
<student>
    <id>2</id>
    <name>b</name>
</student>
<student>
    <id>3</id>
    <name>c</name>
</student>
</students>
Run Code Online (Sandbox Code Playgroud)

XSLT

<xsl:stylesheet version="2.0" 
            xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output indent="yes" method="xml"/>
<xsl:strip-space elements="*"/>

<xsl:template match="/" name="main">

    <xsl:for-each select="students/field">
        <xsl:for-each select="tokenize(.,',')">
            <xsl:element name="{@name}">
                <xsl:value-of select="."/>
            </xsl:element>
        </xsl:for-each>
    </xsl:for-each>                     
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

xml xslt tokenize xslt-2.0

1
推荐指数
1
解决办法
9436
查看次数

标签 统计

tokenize ×1

xml ×1

xslt ×1

xslt-2.0 ×1