我创建了一个库,用于解析和提取一组使用jQuery的XML文件中的信息。所以做这样的事情很简单:
$xml = $($.parseXML(xmlText))
title = $xml.find(".title>longName").text()然后我意识到我的小库不应该依赖于所有的jQuery,而且我可能只需要使用Sizzle库就可以得到我想要的东西,因为这就是jQuery的.find方法的来源。然而,我在刚走出大门时遇到了麻烦。
Sizzle似乎没有parseXML函数。有没有办法传入一段XML文本并返回一个可以搜索的对象?
我注意到你可以在上下文中传递给Sizzle的find函数。但是,Sizzle.find(".title",xmlText)找不到任何东西。
有什么想法吗?是否可以使用Sizzle以与上面使用jQuery相同的方式解析XML?
注意:我希望能够以无头的方式或在Node上运行它,所以我不喜欢使用浏览器依赖项,比如DOMParser。
发布于 2012-05-09 23:33:59
您可以只使用jQuery中的parseXML:
function parseXML( data ) {
if ( typeof data !== "string" || !data ) {
return null;
}
var xml, tmp;
try {
if ( window.DOMParser ) { // Standard
tmp = new DOMParser();
xml = tmp.parseFromString( data , "text/xml" );
} else { // IE
xml = new ActiveXObject( "Microsoft.XMLDOM" );
xml.async = "false";
xml.loadXML( data );
}
} catch( e ) {
xml = undefined;
}
if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
throw new Error( "Invalid XML: " + data );
}
return xml;
}https://stackoverflow.com/questions/10519144
复制相似问题