1

XML文字列からのjQuery選択の結果を使用してjqGridを作成しようとしています。

大きなXML応答(SOAP)をロードするページがあります。初期応答を保存し、応答の一部をさまざまなjqGridテーブルで動的に使用したいと思います。jQueryを使用してXMLの一部を検索すると、テーブルの応答の正しい部分が取得されますが、jQueryの結果オブジェクトからテーブルを作成する時点で行き詰まります。以下のloatTabTrip関数は、引数として指定されたXMLの生の文字列では正常に機能しますtravelXmlが、jQueryの結果では機能しません。(つまり、jQueryオブジェクトをXMLの文字列として取得できれば、それは機能します。または、jqGridがオブジェクトを受け入れる場合)。

何か案は?

<Travel>
    <TravelKey>2010020029A</TravelKey>
    <TravelCategoryCode>AIR</TravelCategoryCode>
    <Trips>
        <Trip>
            <AircraftTrip>
                <TripKey>
                    <TripId>50</TripId>
                    <TravelKey>2010020029A</TravelKey>
                </TripKey>
                <AssignedTravelTaskReferences>
                    <AssignedTravelTaskReference>
                        <TaskId>80203</TaskId>
                        <TravelKey>2010020029A</TravelKey>
                    </AssignedTravelTaskReference>
                </AssignedTravelTaskReferences>
                <TripTravelId>6JG79822S</TripTravelId>
                <Aircraft>
                    <AircraftModelCode>KC135R</AircraftModelCode>
                    <SerialNumber>83104038</SerialNumber>
                </Aircraft>
                <Route>...</Route>
            </AircraftTrip>
        </Trip>
        <Trip>...</Trip>
</Travel> 

function loadTabTrip(travelXml){
    jQuery("#travelTripsTable").jqGrid({
        datatype:'xmlstring',
        datastr: travelXml, 
        colNames:["ID","Aircraft"], 
        colModel:[
            {name:"id",index:"id", width:380, align:"right",xmlmap:">TripKey>TripId"},
            {name:"type",index:"type", width:80, xmlmap:">Aircraft>AircraftModelCode"}
        ],
        xmlReader: {
            root : "Travel>Trips",
            row: ">Trip>AircraftTrip",
            repeatitems: false,
            id: ">TripKey>TripId"
        }
    });
}
4

1 に答える 1

1

jQuery.getメソッドを使用して、基になるDOM要素(この場合はXML要素)を取得できます。

そこから、jQueryでxmlを文字列に変換する関数を使用して、そのXMLオブジェクトを文字列に変換できます。

datastr: xmlToString( travelXml.get(0) )

それは役に立ちますか?

于 2012-05-15T21:26:37.773 に答える