Jquery 使用Sizzle解析XML文件?
我创建了一个库,用于从使用jQuery的一组XML文件中解析和提取信息。这样做很简单:Jquery 使用Sizzle解析XML文件?,jquery,xml,sizzle,Jquery,Xml,Sizzle,我创建了一个库,用于从使用jQuery的一组XML文件中解析和提取信息。这样做很简单: $xml = $($.parseXML(xmlText)) title = $xml.find(".title>longName").text() 然后我意识到我的小库不需要依赖所有的jQuery,而且我可能只需要使用Sizzle库就可以得到我想要的,因为jQuery的.find方法就是从这里来的。然而,我一走出大门就遇到了麻烦 Sizzle似乎没有parseXML函数。有没有办法传入一块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
注意:我希望能够以无头方式或在节点上运行此操作,因此我不希望使用类似DOMParser的浏览器依赖项。您可以使用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;
}
我没有单独使用过sizzle,但是你不能只使用sizzle吗。我在查看源代码时意识到jQuery就是这样处理的。当然,这需要DOMParser(或ActiveX…),所以我必须在我的headless或Node设置中运行一些浏览器环境(env.js?),我试图避免这种情况。。。但这可能仍然是最简单的option@SamFen您可以修改它以添加第三个选项(某些节点xml库)