XSLT:获取元素的内容并将其放在其他位置

时间:2015-10-16 12:34:47

标签: xml xslt xpath

我需要一些XSL Transformation的帮助。它是XML到XML的转换。

我有这种XML结构:

<book>
    <chap>
        <dev>
            <p>This is some text<apnb id="N1">blah blah blah</p>
            <p>...</p>
            <p>...</p>
            <quote>...</quote>
        </dev>
        <defnotes>
            <ntb id="N1">This is the footnote corresponding to the element apnb</ntb>
        </defnotes>
    </chap>
</book>

通过XSLT转换,我需要将ntb元素的内容放入一个note元素中,该元素将直接替换段落中的apnb元素。我的尝试是创建xsl:variable name="N1"以放置ntb id="N1"元素的文本,然后在适当的位置创建note元素并放置xsl:value-of select="$N1"。但它不起作用。我认为我的XPATH表达式可能是错误的(因为我是XSLT的初学者)。

我希望你理解我的问题。提前感谢您的所有答案。

弗洛

1 个答案:

答案 0 :(得分:0)

XPath应该是这样的:

<xsl:value-of select="//ntb[@id='N1']" />

找到属性id等于&#39; N1&#39;的所有ntb元素。 如果您没有重复名称&#39; N1&#39;。

,这应该可行

此外,apnb标记的XML无效,因为它缺少结束标记。

您的代码在这里:

<apnb id="N1">

应该是:

<apnb id="N1"/>