javascript解析XML【DOM】

本文介绍了一种使用DOM解析XML文件的方法,并提供了JavaScript代码示例,展示了如何加载XML文档、获取节点信息以及通过不同方式访问XML元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DOM 是以层次结构组织的节点或信息片段的集合,这个层次允许开发人员在树中导航以寻找特定信息,分析该结构通常需要加载

整个文档和结构层次结构,然后才能做其他工作。由于她是基于信息层次的,因而DOM被认为是基于树或基于对象的

Info.xml
<?xml version='1.0' encoding='gb2312'?>
<Info>
<basic country="china">
<name num="3">霍元甲</name>
<age>42</age>
<sex>男</sex>
</basic>
<description>精武门的创始人</description>
</Info>


html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>访问XML文档</title>
<script>
function GetInfo(){
var document_xml=new ActiveXObject("Microsoft.XMLDOM");
document_xml.load("Info.xml"); //加载XML

var Rootnode=document_xml.documentElement; //获得Info.xml文档的根节点
//alert(Rootnode.attributes.getNamedItem("country").value); ?为什么这样无法查询出属性

var FirstNode=Rootnode.firstChild; //获得根记录的第一个子节点
var SecondNode=Rootnode.lastChild; //获得根节点的最后一个子节点

var nameNode=FirstNode.firstChild;
var ageNode=nameNode.nextSibling; //获得nameNode节点的下一个兄弟节点
var sexNode=FirstNode.lastChild;

var str= "\n描述是:"+SecondNode.firstChild.nodeValue
+"\n姓名是:"+nameNode.firstChild.nodeValue
+"\n年龄是:"+ageNode.firstChild.nodeValue
+"\n性别是:"+sexNode.firstChild.nodeValue;
alert(str);
}

function GetInfo2()
{
var document_xml=new ActiveXObject("Microsoft.XMLDOM");
document_xml.load("Info.xml"); //加载XML

var nameNode=document_xml.getElementsByTagName("name"); //获得文档中<name>标记
var ageNode=document_xml.getElementsByTagName("age"); //获得文档中<age>标记
var sexNode=document_xml.getElementsByTagName("sex"); //获得文档中<sex>标记
var desNode=document_xml.getElementsByTagName("description"); //获得文档中<description>标记

str="名称是:"+nameNode(0).firstChild.nodeValue+
"\n年龄是:"+ageNode(0).firstChild.nodeValue+
"\n性别是:"+sexNode(0).firstChild.nodeValue+
"\n描述是:"+desNode(0).firstChild.nodeValue;

alert(str);
}

function GetAttributes()
{
var document_xml=new ActiveXObject("Microsoft.XMLDOM");
document_xml.load("Info.xml"); //加载XML

var basicNode=document_xml.getElementsByTagName("basic"); //获得文档的所有<basic>标记
var nameNode=document_xml.getElementsByTagName("name"); //获得文档的<name>标记

var basic_attribute=basicNode(0).attributes; //获得<basic>标记的树形
var name_attribute=nameNode(0).attributes; //获得<basic>标记的树形

var str="国籍是:"+basic_attribute.getNamedItem("country").value+
"\n名字中有:"+name_attribute.getNamedItem("num").value+"个字"; //读出这些树形中某个特定的属性的值

alert(str);
}
</script>
</HEAD>
<BODY>
<input type="button" name="submit" value="按钮" onclick="GetInfo();"/>
</BODY>
</HTML>
内容概要:本文档是关于基于Tecnomatix的废旧智能手机拆解产线建模与虚拟调试的毕业设计任务书。研究内容主要包括:分析废旧智能手机拆解工艺流程;学习并使用Tecnomatix软件搭建拆解产线的三维模型,包括设备、输送装置等;进行虚拟调试以模拟各种故障情况,并对结果进行分析提出优化建议。研究周期为16周,涵盖了文献调研、拆解实验、软件学习、建模、调试和论文撰写等阶段。文中还提供了Python代码来模拟部分关键流程,如拆解顺序分析、产线布局设计、虚拟调试过程、故障模拟与分析等,并实现了结果的可视化展示。 适合人群:本任务书适用于机械工程、工业自动化及相关专业的本科毕业生,尤其是那些对智能制造、生产线优化及虚拟调试感兴趣的学生。 使用场景及目标:①帮助学生掌握Tecnomatix软件的应用技能;②通过实际项目锻炼学生的系统建模和虚拟调试能力;③培养学生解决复杂工程问题的能力,提高其对废旧电子产品回收再利用的认识和技术水平;④为后续的研究或工作打下坚实的基础,比如从事智能工厂规划、生产线设计与优化等工作。 其他说明:虽然文中提供了部分Python代码用于模拟关键流程,但完整的产线建模仍需借助Tecnomatix商业软件完成。此外,为了更好地理解和应用这些内容,建议学生具备一定的编程基础(如Python),并熟悉相关领域的基础知识。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值