如何在xslt中获取变量的元素

时间:2013-01-27 19:06:53

标签: xslt xslt-1.0

我导入了这个transcript.xml,因为我有xsl

的另一个源xml

transcript.xml

<?xml version="1.0" encoding="UTF-8"?>
<t:transcript
    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
    xmlns:t='http://namespace.profile.com/ns/transcript'
    xsi:schemaLocation='http://namespace.profile.com/ns/transcript transcript.xsd'>
    <t:studentName>Eva</t:studentName>
    <t:courses>
        <t:course>
            <t:code>IK2210</t:code>        
            <t:credits>3</t:credits>
            <t:grade>A</t:grade>
        </t:course>
        <t:course>
            <t:code>IB2210</t:code>
            <t:credits>3</t:credits>
            <t:grade>A</t:grade>
        </t:course>
        <t:course>
            <t:code>IB2210</t:code>
            <t:credits>1</t:credits>
            <t:grade>C</t:grade>
        </t:course>
        <t:course>
            <t:code>ID1234</t:code>
            <t:credits>2</t:credits>
            <t:grade>B</t:grade>
        </t:course>
    </t:courses>
</t:transcript>

这里是xsl

代码的一部分
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:t='http://namespace.profile.com/ns/transcript'>
<xsl:output method="xml" />
<xsl:variable name="transcript" select="document('transcript.xml')/transcript"/> 

以下都不是

<xsl:value-of select="$transcript/t:courses/t:course"/>
<xsl:value-of select="$transcript/courses/course"/>
<xsl:value-of select="$transcript/courses/t:course"/>

我该如何调用变量的元素? 谢谢!

1 个答案:

答案 0 :(得分:2)

您忘记将名称空间前缀添加到变量$transcript

<xsl:variable name="transcript" select="document('transcript.xml')/t:transcript"/>