我想问一下是否可以使用jQuery.parseXML(data)来验证XML字符串?
我的意思是我知道它用于解析XML,如果XML无效,我会得到一条错误消息,但是每次XML中都会出现轻微错误时函数会失败吗?
我已经尝试使用Google搜索,但我发现的只是解析,而不是验证。
谢谢!
答案 0 :(得分:2)
不,不是通过jQuery(至少不是在Mozilla,很可能是其他非IE浏览器)。
在IE的情况下,使用loadXML在http://msdn.microsoft.com/en-us/library/windows/desktop/ms754585%28v=vs.85%29.aspx处声明,“您不能使用它来根据模式验证XML文档。”,显然jQuery中使用的代码{{3} }也不会验证。
然而,http://code.jquery.com/jquery-latest.js的一些代码似乎暗示它可以在IE(仅)中使用正确的IE - 至少使用4.0版本的Msxml2.DOMDocument - 因为根据http://www.stylusstudio.com/xsllist/200301/post50460.html ,“如果在文档中指定了任何一个,MSXML解析器将根据DTD或模式验证您的文档”(除非validateOnParse属性设置为false)。
然而,对于Mozilla和其他浏览器,这些不执行验证(我认为他们在Ajax的DOMParser()的情况下加载了外部DTD,但这似乎对我现在不起作用,并且无论如何甚至实体也没有加载到常规网站中。)
我不记得http://msdn.microsoft.com/en-us/library/aa468547.aspx#beginner_failure或http://code.google.com/p/jssaxparser/是否支持外部验证,但我认为你需要走这条路。
您需要使用XML吗?也许JSONSchema可以满足您的需求? http://debeissat.nicolas.free.fr/relaxng.php。