代码如下
function MainSay(XmlString)
{
var xmlDoc=new ActiveXObject( "MSXML2.DOMDocument.3.0 ");
xmlDoc.async = false;
while( xmlDoc.readyState != 4) {};
xmlDoc.loadXML(XmlString);
var RoomNodes = xmlDoc.selectSingleNode( "/Room ").childNodes;
var SayNodes,_SayString;
for(var i=0;i <RoomNodes.length;i++)
{
SayNodes=RoomNodes[i];
这句出问题 _SayString=SayNodes.selectSingleNode( "//SayString ").text;
parent.PublicSay.PublicSayDiv.innerHTML+=SayString+ " <br /> ";
}
}
xml 结构是
<Room>
<Say>
<ttt> </ttt>
<SayString> 你好 </SayString>
</Say>
<Say>
<ttt> </ttt>
<SayString> 大家好 </SayString>
</Say>
....
</Room>
程序经常重复输出第一个SayString子节点内容,如果用RoomNodes[i].text直接输出全部子节点,又是正常的,错误出现在selectSingleNode那句上,真是奇怪,不知道为什么,请大家帮忙
------解决方案--------------------
sorry,我的第二个回答有问题。
也可以这样
SayNodes=RoomNodes[i];
_SayString=SayNodes.childNodes[1].text;
------解决方案--------------------
当然你也可以SayNodes.getElementByTagName( "SayString ")[0]开取得