我正在製作一個XSLT 2.0,它接受一個xml並吐出較小的解析xml。其中一個元素需要看起來像這樣無法添加xmlns:xlink作爲屬性。
<article xml:lang="en" article-type="editorial"
xmlns:xlink="http://www.w3.org/1999/xlink">
我創建了xml:lang作爲屬性,與文章類型相同。但是當我嘗試執行xmlns:xlink時,它告訴我xmlns:xlink是屬性的無效名稱。
我正在製作一個XSLT 2.0,它接受一個xml並吐出較小的解析xml。其中一個元素需要看起來像這樣無法添加xmlns:xlink作爲屬性。
<article xml:lang="en" article-type="editorial"
xmlns:xlink="http://www.w3.org/1999/xlink">
我創建了xml:lang作爲屬性,與文章類型相同。但是當我嘗試執行xmlns:xlink時,它告訴我xmlns:xlink是屬性的無效名稱。
您需要將名稱空間(xmlns:xlink="http://www.w3.org/1999/xlink"
)添加到您的xsl:stylesheet
。
例子:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xlink="http://www.w3.org/1999/xlink">
...
</xsl:stylesheet>
另外,如果你想在沒有直接鍵入它把它添加到一個元素,使用xsl:namespace
:
<article>
<xsl:namespace name="xlink" select="'http://www.w3.org/1999/xlink'"/>
</article>
除了由DevNull正確答案,如果要生成的元素的名稱在高級(非動態計算)中是已知的,則可以在代碼中使用:
<article xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Create necessary attributes here -->
</article>
這是很可能在這種情況下,簡化了屬性的創建,如果他們的名字是事先知道,即使它們的值是動態計算:
<article xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="{$vLang}"
article-type="{$vartType}" >
<!-- Generate any content here -->
</article>