我正在尝试使用XML字符串中的jQuery选择结果创建jqGrid。
我有一个加载大型XML响应(SOAP)的页面。我想保存初始响应并在不同的jqGrid表中动态使用部分响应。当我使用jQuery搜索XML的一部分时,我得到了表的响应的正确部分,但我仍然坚持从jQuery结果对象构建表。下面的loatTabTrip
函数适用于作为travelXml
参数给出的原始XML字符串,但它不适用于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"
}
});
}
答案 0 :(得分:1)
您可以使用jQuery .get
方法检索底层DOM元素 - 或者在本例中是XML元素。
从那里,您可以使用Convert xml to string with jQuery中的函数将该XML对象转换为字符串:
datastr: xmlToString( travelXml.get(0) )
这有帮助吗?