0
这里是我的XML文件:如何分配XSLT变量与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>
...
变量 '德' 填写正确,无论其可变 '英语'填充了德语文本值。我们如何用ENGLISH TEXT值填充变量'english'?
非常感谢您的帮助!
根据您发布的内容,您的'$ english'变量应该具有“ENGLISH TEXT”值。虽然,您的源XML似乎并没有绑定到'
除了像Mads说的那样,您在XSLT中有两个不同的名称空间,而XML只有一个,所以您发布的内容没有任何问题。你需要发布一个更完整的记录你正在做的事情。 – Borodin
感谢Mads和Borodin的快速反应。编辑了正在使用的命名空间的问题。希望这有助于找到问题。 –