我正在尝试创建一个包含XML和XSL的嵌入式文件。该测试基于dpawson.co.uk上的"XML and XSL in one file"。来源如下:
<?xml-stylesheet type="text/xml" href="#stylesheet"?>
<!DOCTYPE doc [
<!ATTLIST xsl:stylesheet
id ID #REQUIRED>
]>
<doc>
<xsl:stylesheet id="stylesheet"
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- any xsl:import elements -->
<xsl:template match="xsl:stylesheet" />
<!-- rest of your stylesheet -->
</xsl:stylesheet>
<!-- rest of your XML document -->
</doc>
最初我制作了一个有效的XML和XSL文件。 XML看起来像这样:
<?xml-stylesheet type="text/xsl" href="data.xsl"?>
<Report>
<ReportFor>Test Data</ReportFor>
<CreationTime>2009-07-29 05:37:14</CreationTime>
</Report>
data.xsl
文件如下所示:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<!-- ... -->
<xsl:value-of select="Report/ReportFor" />
<!-- ... -->
<xsl:value-of select="Report/CreationTime"/>
<!-- ... -->
</xsl:template>
</xsl:stylesheet>
基于这些,我正在尝试创建一个包含XML和XSL的嵌入式XML文件。
目前此文件如下所示:
<?xml-stylesheet type="text/xsl" href="#stylesheet"?>
<!DOCTYPE doc [
<!ATTLIST xsl:stylesheet
id ID #REQUIRED>
]>
<doc>
<xsl:stylesheet id="stylesheet"
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- any xsl:import elements -->
<xsl:template match="xsl:stylesheet" />
<!-- rest of your stylesheet -->
<xsl:template match="/">
<!-- ... -->
<xsl:value-of select="Report/ReportFor" />
<!-- ... -->
<xsl:value-of select="Report/CreationTime"/>
<!-- ... -->
</xsl:template>
</xsl:stylesheet>
<!-- rest of your XML document -->
<Report>
<ReportFor>Test Data</ReportFor>
<CreationTime>2009-07-29 05:37:14</CreationTime>
</Report>
</doc>
本文档的问题是<xsl:value-of>
不检索XML部分中表示的数据。 <xsl:value-of>
如何识别嵌入数据?是否需要一些特殊的语法?
答案 0 :(得分:1)
您缺少模板匹配属性中的doc元素。试试这个:
<xsl:template match="/doc">
<xsl:value-of select="Report/ReportFor" />
</xsl:template>
答案 1 :(得分:0)
这是否需要使用“。”运算符来获取值?
<xsl:value-of select="Report/ReportFor/."/>