0

jQuery を使用して一連の XML ファイルから情報を解析および抽出するためのライブラリーを作成しました。したがって、次のようなことを行うのは非常に簡単です。

$xml = $($.parseXML(xmlText))
title = $xml.find(".title>longName").text()

次に、私の小さなライブラリがすべての jQuery に依存する必要はなく、Sizzle ライブラリを使用するだけで必要なものを取得できる可能性があることに気付きました。しかし、私はすぐに問題を抱えています。

Sizzle には parseXML 関数がないようです。XML テキストのチャンクを渡して、検索可能なオブジェクトを取得する方法はありますか?

Sizzle の find 関数にコンテキストを渡すことができることに気付きました。ただし、 Sizzle.find(".title", xmlText) は何も見つかりませんでした。

何か案は?上記で jQuery を使用していたのと同じ方法で、Sizzle を使用して XML を解析することは可能ですか?

注: これをヘッドレス方式または Node 上で実行できるようにしたいので、DOMParser のようなブラウザーの依存関係を使用したくありません。

4

1 に答える 1

2

parseXMLjQueryから使用できます:

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;
}
于 2012-05-09T15:33:59.337 に答える