0
我有一個簡單的XSLT腳本:XSL-簡單的例子失敗
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/package">
<xsl:copy-of select="*"/>
</xsl:template>
</xsl:stylesheet>
,當應用到下面的例子
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<package
xmlns="http://www.idpf.org/2007/opf"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dcterms="http://purl.org/dc/terms/"
version="3.0"
xml:lang="en"
unique-identifier="pub-identifier"
>
<metadata>
<dc:identifier id="pub-identifier">_idm462750791920</dc:identifier>
<meta id="meta-identifier" property="dcterms:identifier">_idm462750791920</meta>
</metadata>
</package>
產生一個無意義的結果
<?xml version="1.0"?>
_idm462750791920
_idm462750791920
注我不使用與dc命名空間相關的元素,事情就像人們期望的那樣工作。例如,如果我使用:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<package
xmlns="http://www.idpf.org/2007/opf"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dcterms="http://purl.org/dc/terms/"
version="3.0"
xml:lang="en"
unique-identifier="pub-identifier"
>
<metadata>
asdfasdfads
</metadata>
</package>
因此它看起來似乎認識到「包裝」元素並按照我的預期行事。
我必須做什麼使這項工作?
'/ package'不匹配任何內容,因爲package位於默認名稱空間中。快速搜索xslt默認命名空間,你會發現很多例子。此外,這種無意義的結果是由於xslt的內置模板。當我回到電腦時,我會添加一個指向的鏈接。 –
這是什麼*是預期的結果? –
@michail - 我希望能夠顯示包元素中的所有文本。 –