对 XML 文件使用内联 XSLT [英] Using inline XSLT for an XML file
问题描述
我有一个 XML 文件和一个外部 XSLT 文件.
目前,在我的 XML 中,我使用 href 引用外部 XSLT 链接:
<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="stylesheet.xsl" ?><我的标签><t1></t1><t2></t2><t3><t3><我的标签>
如何改用内联 XSLT?这可能吗?如果是,如何?
是的,可以将 XSLT 嵌入到您的 XML 中.
XSLT 是一个 XML 文件,因此您只需确保将它放在 XML 文件的文档元素中,以便 XML 文件仍然是良好的.
事实上,它在 XSLT 规范中有描述:
<块引用>2.7 嵌入样式表
通常,XSLT 样式表是一个完整的 XML 文档,其中包含xsl:stylesheet 元素作为文档元素.但是,一个 XSLT样式表也可以嵌入到另一个资源中.两种形式嵌入是可能的:
- XSLT 样式表可以以文本形式嵌入到非 XML 中资源,或
- xsl:stylesheet 元素可能出现在 XML 文档中,而不是作为文档元素.
为了便于第二种嵌入形式,xsl:stylesheet 元素允许具有指定唯一标识符的 ID 属性.
注意:为了将这样的属性与 XPath id 一起使用函数,它实际上必须在 DTD 中声明为 ID.
下面的例子展示了如何处理xml-stylesheet指令 [XML 样式表] 可用于允许文档包含自己的样式表.URI 引用使用相对 URI用于定位 xsl:stylesheet 元素的片段标识符:
<头><xsl:stylesheet id="style1"版本=1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"xmlns:fo="http://www.w3.org/1999/XSL/Format"><xsl:import href="doc.xsl"/><xsl:template match="id('foo')"><fo:block font-weight="bold"><xsl:apply-templates/></fo:block></xsl:模板><xsl:template match="xsl:stylesheet"><!-- 忽略--></xsl:模板></xsl:stylesheet>头部><身体><para id="foo">...