非常接近XML,我开发了一个XML表,以及一个XSD架构,最后是一个XSLT表来显示内容。当我在Web浏览器中查看XML数据表(在visual studio中完成)时,它会说:
此XML文件似乎没有与之关联的任何样式信息。文档树如下所示。
我尝试过不同的文件路径并且与标题混淆,但运气不好。
XML数据
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xslt" href="lecturelayout.xslt"?>
<university>
<lesson>
<subject>Biology</subject>
<maintopic name="Human Biology">
<subtopic>Enlarge Hearts</subtopic>
<subtopic>Heart Valves</subtopic>
</maintopic>
<content>
<sentance>Very long sentance one</sentance>
<sentance>Very long sentance two</sentance>
<sentance>Very long sentance three</sentance>
</content>
</lesson>
<lesson>
<subject>Chemistry</subject>
<maintopic name="Periodic Table">
<subtopic>Enlarge Hearts</subtopic>
<subtopic>Heart Valves</subtopic>
</maintopic>
<content>
<sentance>Very long sentance one</sentance>
<sentance>Very long sentance two</sentance>
<sentance>Very long sentance three</sentance>
</content>
</lesson>
</university>
XSLT表 - 注意可能不是100%正确,显然无法测试它:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@* | node()">
<html>
<body>
<h1>Professional Training Facilities</h1>
<strong>University: </strong>
<xsl:for-each select="university/lesson">
<xsl:value-of select="subject"/>
<br/>
<p>
<strong>Main Topic: </strong>
<xsl:value-of select="maintopic=name"/>
</p>
<br/>
<p>
<strong>Sub Topics: </strong>
<xsl:for-each select="maintopic">
<p>
<xsl:value-of select="subtopic"/>
</p>
</xsl:for-each>
</p>
<p></p>
<strong>Content:</strong>
<xsl:for-each select="content">
<p>
<xsl:value-of select="sentance"/>
</p>
</xsl:for-each>
</xsl:for-each>
<br/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
非常感谢,花了一段时间研究这个但是在XSLT上找不到任何关于XSL的信息。
编辑:一个伙伴刚刚在他的机器上复制了那个(而不是他的程序)并获得相同的结果,有人可以尝试一下吗? :)答案 0 :(得分:3)
您的类型属性应为text/xsl
,而不是text/xslt
。试试
<?xml-stylesheet type="text/xsl" href="lecturelayout.xslt"?>
答案 1 :(得分:2)
除了根据@Matt Gibson的建议将处理指令@type调整为type="text/xsl"
之外,您还需要调整模板的匹配表达式。
您的模板设置为与每个属性node()
匹配,并生成多个<html>
元素(无效)。
根据根节点调整模板匹配:
<xsl:template match="/">