请教JS 解析XML问题

magie16036936 2009-04-08 10:39:17
我用 JS ActiveXObject 来解析XML
<item identifier="B100" isvisible="true">
<title>Inland Rules of the Road (HTML Format)</title>

<item identifier="S100001" identifierref="R_S100001" isvisible="true">
<title>References and Lesson Objective</title>
</item>

<item identifier="B110" isvisible="true">
<title>Steering & Sailing Rules</title>

<item identifier="S110001" identifierref="R_S110001">
<title>Conduct of Vessels in any Condition of Visibility</title>
<adlcp:prerequisites type="aicc_script"><![CDATA[S100001]]></adlcp:prerequisites>
<adlcp:maxtimeallowed>0000:30:00.00</adlcp:maxtimeallowed>
</item>

<item identifier="S110002" identifierref="R_S110002">
<title>Conduct of Vessels in Sight of One Another</title>
<adlcp:prerequisites type="aicc_script"><![CDATA[S110001]]></adlcp:prerequisites>
</item>

<item identifier="S110003" identifierref="R_S110003">
<title>Conduct of Vessels in Restricted Visibility</title>
<adlcp:prerequisites type="aicc_script"><![CDATA[S110002]]></adlcp:prerequisites>
</item>

</item>
遇到这样一个XML
<item>可以有无限个 <item>作为他的叶子。
<item>
<item>
<item>
……………………
</item>
</item>
</item>
这个我想用一个JS方法 就能处理它。还能得到他的叶子。并能得到它叶子上的属性的信息。
...全文
89 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mumu_java 2009-04-08
  • 打赏
  • 举报
回复

function getValue(XmlDoc){//XmlDoc为xml文件的内容
var vRoot = XmlDoc.getElementsByTagName("item");
var vItem = vRoot[0].getElementsByTagName("URL")[0].firstChild;
if(vItem!=null||vItem!=undefined){
getValue(vItem);
}else{
alert(vItem.data);
}
}
jol_boy 2009-04-08
  • 打赏
  • 举报
回复

//对xml文件的操作------------------------------------------------------------------------------------------
// 加载xml文档
function loadXMLComm(xmlFile) {
var xmlDoc;
if (window.ActiveXObject) {
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = false;
xmlDoc.load(xmlFile);
}
else if (document.implementation && document.implementation.createDocument) {
xmlDoc = document.implementation.createDocument('', '', null);
xmlDoc.load(xmlFile);
}
else {
return null;
}
return xmlDoc;
}

//对xml对象进行判断
function checkXMLDocObj(xmlFile) {

var xmlDoc = loadXMLComm(xmlFile);
if (xmlDoc == null) {
alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');
}
return xmlDoc;
}

//-----------------------------------------------------------------------------------------------------------

var xmlDoc = checkXMLDocObj('xxxxx.xml');
//创建了这样一个对象xmlDoc
//如果你的item 就是根节点,那么
var node = xmlDoc.selectNodes("//item[identifier='B100']");
//node中就包含了 <item identifier="B100" isvisible="true">...... </item>这个节点里面的所有内容!
针对node就可以进行各种操作,取子节点,或者取其属性。具体就看你怎么个逻辑了!取节点可以用childNode,取属性可以用getAttributes()


87,917

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧