我是XML和XSLT的新手。我正在努力改变"使用xslt的xml文档。不幸的是,这不能正常工作。我收到以下错误" XSLT转换期间出错:XSLT转换失败。"在尝试加载xml文件时在FireFox中。 Chrome只会加载一个空白页面。 XML和XSLT文件都独立地加载到浏览器中,表明它们都是格式良好的。这是XSL文件:
<wb:stylesheet version="3.0"
xmlns:wb="http://www.w3.org/1999/XSL/Transform">
<wb:template match="/">
<html>
<body>
<h2>Name: <wb:value-of select="wb:world/wb:name" /></h2>
<p><wb:vlaue-of select="wb:world/wb:desc" /></p>
</body>
</html>
</wb:template>
</wb:stylesheet>
这是XML文件:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="./world.xsl"?>
<world
xmlns:wb="http://www.w3.org/2001/XMLSchema-instance"
wb:schemaLocation="./ world.xsd">
<wb:name>Arizelos</wb:name>
<wb:desc>
</wb:desc>
<wb:nation>
<wb:name>Whatever</wb:name>
<wb:map>map01.png</wb:map>
<wb:number>1</wb:number>
<wb:desc>Whatever</wb:desc>
<wb:county>
<wb:name>Whatever</wb:name>
<wb:size>City-State</wb:size>
<wb:number>1</wb:number>
<wb:desc>Whatever</wb:desc>
<wb:community>
<wb:name>Test</wb:name>
<wb:size>City</wb:size>
<wb:number>1</wb:number>
<wb:desc>Whatever</wb:desc>
<wb:profession>
<wb:name>Sorcerer</wb:name>
<wb:number>1</wb:number>
<wb:desc>Whatever</wb:desc>
<wb:person>
<wb:name>Harry Potter</wb:name>
<wb:number>1</wb:number>
<wb:desc>Whatever</wb:desc>
<wb:charsheet>
</wb:charsheet>
</wb:person>
</wb:profession>
</wb:community>
</wb:county>
</wb:nation>
<wb:religion>
<wb:name>Phony</wb:name>
<wb:desc>But aren't they all?</wb:desc>
<wb:deity>
<wb:name>John Doe</wb:name>
<wb:gender>Male</wb:gender>
<wb:desc>I never considered him divine</wb:desc>
</wb:deity>
</wb:religion>
</world>
提前感谢您提供的任何帮助:)
答案 0 :(得分:0)
您的代码存在很多问题。让我指出其中一些。
在XSLT样式表中,
xmlns:wb="http://www.w3.org/1999/XSL/Transform"
。虽然你可以使用你想要的任何前缀,xsl
是它的事实上的标准。其他一切都让人感到困惑。http://www.w3.org/2001/XMLSchema-instance
)中存在的命名空间。wb:world
元素没有命名空间world
vlaue-of
应该是xsl:value-of
在输入XML中,
xmlns:wb="http://www.w3.org/2001/XMLSchema-instance"
。同样,这是一个非标准前缀 - 您应该使用xsi
。但是,我不确定您是否打算将命名空间用于架构实例。<强>样式表强>
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:wb="http://www.w3.org/2001/XMLSchema-instance">
<xsl:template match="/">
<html>
<body>
<h2>Name: <xsl:value-of select="world/wb:name" /></h2>
<p><xsl:value-of select="world/wb:desc" /></p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
<强>输出强>
desc
为空,因此p
内没有输出任何内容。
<html xmlns:wb="http://www.w3.org/2001/XMLSchema-instance">
<body>
<h2>Name: Arizelos</h2>
<p>
</p>
</body>
</html>