1

我想问我是否可以使用jQuery.parseXML(data)来验证 XML 字符串?

我的意思是我知道它是用来解析 XML 的,如果 XML 无效,我会收到一条错误消息,但是每次 XML 中甚至会出现小错误时,该函数都会失败吗?

我试过用谷歌搜索它,但我发现的只是解析,而不是验证。

谢谢!

4

1 回答 1

2

不,不是通过 jQuery(至少不是在 Mozilla 中,很可能是其他非 IE 浏览器)。

在 IE 的情况下,在http://msdn.microsoft.com/en-us/library/windows/desktop/ms754585%28v=vs.85%29.aspx中声明,带有 loadXML,“你不能使用它根据模式验证 XML 文档。”,因此显然http://code.jquery.com/jquery-latest.js中 jQuery 中使用的代码也不会验证。

但是, http://www.stylusstudio.com/xsllist/200301/post50460.html上的一些代码似乎表明在 IE 中(仅)使用正确的 IE 是可能的——至少在 4.0 版本的 Msxml2.DOMDocument 中是可能的—— - 因为根据http://msdn.microsoft.com/en-us/library/aa468547.aspx#beginner_failure,“如果文档中指定了任何一个,MSXML 解析器将根据 DTD 或架构验证您的文档”(除非validateOnParse 属性设置为 false)。

但是,对于 Mozilla 和其他浏览器,它们不执行验证(我认为在 Ajax 的 DOMParser() 的情况下它们已经加载了外部 DTD,但这似乎对我现在不起作用,无论如何,甚至实体没有在常规网站中加载)。

我不记得http://code.google.com/p/jssaxparser/http://debeissat.nicolas.free.fr/relaxng.php是否支持外部验证,但我认为你需要去在这种方向。

您需要使用 XML 吗?也许 JSONSchema 可以满足您的需求?http://json-schema.org/implementations.html

于 2012-08-22T14:39:38.107 回答