我把我的代码放在
XML验证网站上,它给了我这个错误:
Line 8: 4 The markup in the document following the root element must be well-formed.
有问题的行是< xsl:output method =“html”doctype-system =“about:legacy-compat”/> ;,line. XML
<?xml version="1.0"?> <!-- Fig. 15.21: sorting.xsl --> <xsl:stylesheet version = "1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <!-- write XML declaration and DOCTYPE DTD information --> *<xsl:output method = "html" doctype-system = "about:legacy-compat" />* <!-- match document root --> <xsl:template match="/"> -<html> <xsl:apply-templates/> </html> </xsl:template>
解决方法
一般情况
The markup in the document following the root element must be well-formed.
此错误表示您的XML在根元素后面有标记.
要成为well-formed,XML must have exactly one root element,并且单个根元素后面不能再有标记.
一个根元素示例(GOOD)
<r> <a/> <b/> <c/> </r>
此错误的最常见来源是:
<r> <a/> <b/> <c/> </r> </r> <!-- shouldn't be here -->
>故意有多个根元素(BAD):
<a/> <b/> <!-- second root element shouldn't be here --> <c/> <!-- third root element shouldn't be here -->
>无意中有多个根元素(BAD):
<r/> <!-- shouldn't be self-closing --> <a/> <b/> <c/> </r>
>解析不同于您的XML(BAD):
在提供给解析之前立即记录XML
失败是为了确保解析器所使用的XML
看见与您认为正在看到的XML相同.共同
这里的错误包括:
>传递给XML的XML文档的文件名
解析器与您认为的不同.
> XML的缓冲区很脏.确保它已经存在
在添加XML之前清除.
>您管道中前一阶段的早期计划
在解析之前更改XML
此错误消息.
你的特殊问题
在您的特定情况下,您的XML似乎有多个根元素,因为xsl:stylesheet元素过早关闭(上面的案例#3).
更改
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>
至
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
</xsl:stylesheet>
如果您的真实文档中尚不存在.