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 元素。

从那里,您可以使用Convert xml to string with jQuery中的函数将该 XML 对象转换为字符串:

datastr: xmlToString( travelXml.get(0) )

这有帮助吗?

于 2012-05-15T21:26:37.773 回答