繁体   English   中英

在Javascript中使用DOM解析器获取子节点属性值

[英]Get Child Nodes attribute value using DOM parser in Javascript

我需要使用JavaScript获取"templatedata"RK1S )的值。

<additional_info>
<Param name="srno" value="B4745" />
<Param name="Device" value="Opn" />
<Param name="Support" value="0" />
<Param name="templatedata" value="Rk1S"/>
</additional_info>

我尝试使用以下脚本,但undefined

 var text=" <additional_info> <Param name="srno" value="B4745" /> <Param name="Device" value="Opn" /> <Param name="Support" value="0" /> <Param name="templatedata" value="Rk1S"/> </additional_info>"; if (window.DOMParser) { parser = new DOMParser(); xmlDoc = parser.parseFromString(text,"text/xml"); } else { xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = false; xmlDoc.loadXML(text); } var txt; var x = xmlDoc.getElementsByTagName("additional_info"); alert(x[0].value); var y=x.getAttribute("Param name") txt = y.nodeValue; alert(txt); 

您所需要的只是所需元素的querySelector ,可以使用Param[name="templatedata"] 使用模板文字而不是双引号来定义多行上的字符串,并使用getAttribute('value')代替.value ,因为.value仅适用于类似输入的元素:

 var text = `<additional_info> <Param name="srno" value="B4745" /> <Param name="Device" value="Opn" /> <Param name="Support" value="0" /> <Param name="templatedata" value="Rk1S"/> </additional_info>`; let parser; let xmlDoc; if (window.DOMParser) { parser = new DOMParser(); xmlDoc = parser.parseFromString(text, "text/xml"); } else { xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = false; xmlDoc.loadXML(text); } const param = xmlDoc.querySelector('Param[name="templatedata"]'); console.log(param.getAttribute('value')); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM