[英]getElementsByTagName is not returning all child nodes
我的 XML 字符串是
str = "<ROOT><CATEGORY_AREA_LIST><CATEGORY_AREA NAME='General'><CATEGORY_TYPE NAME='MOC'><PROPOSED_LEVEL NAME='3'></PROPOSED_LEVEL></CATEGORY_TYPE><CATEGORY_TYPE NAME='General'><PROPOSED_LEVEL NAME='3'></PROPOSED_LEVEL></CATEGORY_TYPE></CATEGORY_AREA><CATEGORY_AREA NAME='BOO'><CATEGORY_TYPE NAME='Open'><PROPOSED_LEVEL NAME='1'></PROPOSED_LEVEL></CATEGORY_TYPE><CATEGORY_TYPE NAME='NOC'><PROPOSED_LEVEL NAME='5'></PROPOSED_LEVEL></CATEGORY_TYPE></CATEGORY_AREA></CATEGORY_AREA_LIST></ROOT>"
在 javascript 函数中,我试图获取所有 CATEGORY_AREA
var dp = new DOMParser();
var xmlDoc = dp.parseFromString(str , "text/xml");
var list = xmlDoc.getElementsByTagName("CATEGORY_AREA_LIST");
var categoryArea = list[0].childNodes;
但是 categoryArea 只有一个条目。
我做错了什么吗?
我的意图是访问所有category_area,然后访问所有category_type 和proposed_level。
请帮忙
如果您将console.log(xmlDoc)
添加到您的代码中,您可以查看由 DOM 解析器生成的 XML 文档。
它有一堆错误,所以CATEGORY_AREA_LIST
元素没有子节点。
您可以使用xmllint 之类的工具(它随 libxml 一起提供,因此可以轻松安装在大多数 UNIX 系统(包括Windows 10 )上)来突出显示 XML 中的特定错误。
重新编辑:
现在您已经修复了您的 XML,我无法重现该问题:
str = "<ROOT><CATEGORY_AREA_LIST><CATEGORY_AREA NAME='General'><CATEGORY_TYPE NAME='MOC'><PROPOSED_LEVEL NAME='3'></PROPOSED_LEVEL></CATEGORY_TYPE><CATEGORY_TYPE NAME='General'><PROPOSED_LEVEL NAME='3'></PROPOSED_LEVEL></CATEGORY_TYPE></CATEGORY_AREA><CATEGORY_AREA NAME='BOO'><CATEGORY_TYPE NAME='Open'><PROPOSED_LEVEL NAME='1'></PROPOSED_LEVEL></CATEGORY_TYPE><CATEGORY_TYPE NAME='NOC'><PROPOSED_LEVEL NAME='5'></PROPOSED_LEVEL></CATEGORY_TYPE></CATEGORY_AREA></CATEGORY_AREA_LIST></ROOT>" var dp = new DOMParser(); var xmlDoc = dp.parseFromString(str , "text/xml"); var list = xmlDoc.getElementsByTagName("CATEGORY_AREA_LIST"); var categoryArea = list[0].childNodes; console.log(categoryArea.length)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.