DOM解析xml文档节点下的所有子节点,怎么样只输出标签名而没有<#text>标签

XML文档:

<?xml version="1.0" encoding="UTF-8"?>
<matchineroot nodetype="machine">
  <m_project nodetype="module" name="工程" address="ff"  pNode="long/module/gsm/far_engineer1.xml">

  </m_project>

  <m_cpu nodetype="module" name="MCU参数" power="1" address="00" pNode="long/module/gsm/far_mcu.xml">

  </m_cpu>

  <m_digital nodetype="module" name="数字模块" power="1" address="ef" pNode="long/module/gsm/far_digital2.xml">

  </m_digital>

  <m_rf nodetype="module" name="小信号模块" power="1" address="01" pNode="long/module/gsm/far_if.xml">
  </m_rf>

  <m_pa nodetype="module" name="功放板" power="1" onekeycfg="1" address="e3" pNode="long/module/gsm/pa2.xml" >

  </m_pa>
  

</matchineroot>
现在我要遍历根节点matchineroot节点下所有子节点并获得节点名,如果直接用DOM遍历节点的方法输出的节点名不仅包含文档中所有子节点名,还会输出很多<#text>,事实上 node instanceof Text的场合:输出是:#text, node instanceof Element的场合:输出是:标签名,所以要加一个节点类型的判断才可以只输出节点名,即 if (nodes.item(j) instanceof Element),完整代码如下:
 var root = xmlDoc.getElementsByTagName("matchineroot");
                        for (i = 0; i < root.length; i++) {
                            var nodeItem = root.item(i);
                            var nodes = nodeItem.childNodes;
                            for (j = 0; j < nodes.length; j++) {
                                if (nodes.item(j) instanceof Element) {//判断是否属于属性节点,如果不加判断则会循环出text节点
                                    nodeName = nodes.item(j).nodeName;
                                    name = xmlDoc.getElementsByTagName(nodeName)[0].getAttribute("name");
                                    if (module == name) {//通过判断查询的模块进一步查找相应的xml文档节点名
                                        pNode = xmlDoc.getElementsByTagName(nodeName)[0].getAttribute("pNode");
                                        break;
                                    }
                                }
                            }
                        }

 


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值