0

这是我的 XML 文件:

<Veranstaltungen xmlns="urn:schemas-etourist:Veranstaltung">
    <Veranstaltung attribute1="xyz" attribute2="xyz">
        <OBJECT>
            <string xmlns="urn:eTourist:i18n" xml:lang="de-DE">GERMAN TEXT</string>
            <string xmlns="urn:eTourist:i18n" xml:lang="en-GB">ENGLISH TEXT</string>
            <string xmlns="urn:eTourist:i18n" xml:lang="cs-CZ">CZECH TEXT</string>
        </OBJECT>
...

这里是我的 XSLT 变量:

...
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:td="urn:schemas-etourist:Veranstaltung"
xmlns:td2="urn:schemas-etourist:SchemaExtension"
xmlns:td3="urn:eTourist:i18n"
    xmlns:php="http://php.net/xsl"
extension-element-prefixes="php">
...
<xsl:variable name="german">
<xsl:value-of select="td:OBJECT/td3:string[@xml:lang='de-DE']"></xsl:value-of>
</xsl:variable>

<xsl:variable name="english">
<xsl:value-of select="td:OBJECT/td3:string[@xml:lang='en-GB']"></xsl:value-of>
</xsl:variable>
...

变量 'german' 填写正确,但是变量 'english' 填写了 GERMAN TEXT 值。我们如何用 ENGLISH TEXT 值填充变量“english”?

非常感谢您的帮助!

4

1 回答 1

0

尝试使用lang()函数,该函数旨在匹配这样的语言,同时考虑范围(请记住,xml:lang属性适用于所有后代元素以及指定属性的元素):

<xsl:variable name="german">
<xsl:value-of select="td:OBJECT/td3:string[lang('de')]"></xsl:value-of>
</xsl:variable>

<xsl:variable name="english">
<xsl:value-of select="td:OBJECT/td3:string[lang('en')]"></xsl:value-of>
</xsl:variable>
于 2013-05-28T09:37:10.520 回答