Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用Sizzle解析XML文件?_Jquery_Xml_Sizzle - Fatal编程技术网

Jquery 使用Sizzle解析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文本并

我创建了一个库,用于从使用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


注意:我希望能够以无头方式或在节点上运行此操作,因此我不希望使用类似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库)