如何用js读取WebService返回的XML结果!
aqqzy 2005-10-18 05:14:40 利用js调用WebService,返回类型是DataSet,可返回的形式是XML的格式。
我想在js中取得返回的结果。可总是错误,请大家帮帮忙!
返回的XML如下:
<?xml version="1.0" encoding="utf-8" ?>
- <DataSet xmlns="http://localhost/WebApp/">
- <xs:schema id="ChatList" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xs:element name="ChatList" msdata:IsDataSet="true" msdata:Locale="zh-CN">
- <xs:complexType>
- <xs:choice maxOccurs="unbounded">
- <xs:element name="List">
- <xs:complexType>
- <xs:sequence>
<xs:element name="PostName" type="xs:string" minOccurs="0" />
<xs:element name="PostTime" type="xs:string" minOccurs="0" />
<xs:element name="PostBody" type="xs:string" minOccurs="0" />
<xs:element name="Flag" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
- <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
- <ChatList xmlns="">
- <List diffgr:id="List1" msdata:rowOrder="0" diffgr:hasChanges="inserted">
<PostName>200510309952</PostName>
<PostTime>2005年10月18日 17:03:50</PostTime>
<PostBody>111</PostBody>
<Flag>0</Flag>
</List>
- <List diffgr:id="List2" msdata:rowOrder="1" diffgr:hasChanges="inserted">
<PostName>200510309952</PostName>
<PostTime>2005年10月18日 17:03:51</PostTime>
<PostBody>222</PostBody>
<Flag>0</Flag>
</List>
- <List diffgr:id="List3" msdata:rowOrder="2" diffgr:hasChanges="inserted">
<PostName>200510309952</PostName>
<PostTime>2005年10月18日 17:03:52</PostTime>
<PostBody>333</PostBody>
<Flag>0</Flag>
</List>
</ChatList>
</diffgr:diffgram>
</DataSet>
我现在只想取得ChatList之间PostName,PostTime,PostBody,Flag的这部分,该怎么做。
我的代码是这么写的,总是出错。
var xmlResult = event.result.raw.xml;
if(xmlResult != "" && xmlr != null)
{
var xmlDoc = new ActiveXObject("MSXML2.DOMDocument.3.0");
xmlDoc.async=false;
xmlDoc.validateOnParse=false;
xmlDoc.load(xmlResult);
for (var i = 0;i < xmlDoc.getElementsByTagName("List").length;i ++)
{
if(xmlDoc.getElementsByTagName("List").item(i).childNodes(3).text == IPU)
{
MSG.innerHTML += "<font color=red>" + xmlDoc.getElementsByTagName("List").item(i).childNodes(0).text + " "
+ xmlDoc.getElementsByTagName("List").item(i).childNodes(1).text + "</font><br>"
+ xmlDoc.getElementsByTagName("List").item(i).childNodes(2).text + "<br>";
}
}
}
大家帮我看看,应该怎么读取!