cal*_*531 18 javascript xml dom
问题:如何在现代浏览器(除了IE之外的任何东西)中对我的XML进行语法检查?
我在W3Schools上看过一个包含XML语法检查器的页面.我不知道它是如何工作的,但我想知道如何实现同样的行为.
我已经在这个问题上进行了很多搜索(没有成功),我尝试使用DOM Parser来检查我的XML是否"格式正确"(也没有成功).
var xml = 'Caleb'; var parser = new DOMParser(); var doc = parser.parseFromString(xml, 'text/xml');
我希望解析器告诉我我有一个XML语法错误(即一个未关闭的名称标签).但是,它总是返回一个XML DOM对象,就好像根本没有错误一样.
总而言之,我想知道如何使用JavaScript自动检查XML文档的语法.
PS有没有办法可以针对DTD验证XML文档(使用JS,而不是IE)?
NoB*_*ugs 28
编辑:这是一个更简洁的例子,来自MDN:
var sMyString = "<a id=\"a\"><b id=\"b\">hey!<\/b><\/a>";
var oParser = new DOMParser();
var oDOM = oParser.parseFromString(sMyString, "text/xml");
// print the name of the root element or error message
dump(oDOM.documentElement.nodeName == "parsererror" ? "error while parsing" : oDOM.documentElement.nodeName);
Run Code Online (Sandbox Code Playgroud)
上面的 NoBugs 答案对我来说不适用于当前的 chrome。我建议:
var sMyString = "<a id=\"a\"><b id=\"b\">hey!<\/b><\/a>";
var oParser = new DOMParser();
var oDOM = oParser.parseFromString(sMyString, "text/xml");
dump(oDOM.getElementsByTagName('parsererror').length ?
(new XMLSerializer()).serializeToString(oDOM) : "all good"
);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19188 次 |
最近记录: |