例如:
<doc xmlns="http://www.foo.org">
<div id>
<title>Mr. Title</title>
<paragraph>This is one paragraph.</paragraph>
</div>
</doc>
请注意,div标签具有未分配值的属性id。我想用XSLT来解决它,但是当我将XSL应用于这个XML时,它会在处理之前出错“XML Parsing Error:not wellform”。有人知道解决这个问题吗?
谢谢!
答案 0 :(得分:3)
你想要的是不可能的。即使XSL应用程序的结果不必很好地形成,它的输入也必须是。
答案 1 :(得分:2)
答案说,开始XSLT转换的先决条件是拥有格式良好(并且已解析)的XML文档,这是正确的。
<强>然而强>:
在XSLT 2.0中,不需要源XML文档。
如果document()
函数无法解析URI(由参数构造)标识的文件,那么XSLT 1.0和XSLT 2.0都会向实现提供帮助。如果您的XSLT处理器没有引发错误并且仅返回空节点集,这可以用作确定特定URI标识的文件是否格式良好的XML文档的技术
答案 2 :(得分:1)
没有。在将XSLT应用于XML之前,必须先解析XML。
答案 3 :(得分:1)
在XSLT 2.0中,您可以使用doc-available()
函数,如果不存在具有给定URI的资源,或者资源存在但不是XML,则返回false。如果您知道需要哪种修复工作,则可以使用unparsed-text()
函数读取资源并将结果作为文本进行操作来尝试。但是,一般情况下,如果有人向您发送了错误的XML,那么推荐的方法是说服他们停止这样做。