如何使用JavaScript DOMParser仅获取XML元素而不是空格?

3

所以,我正在尝试使用javascript解析XML,但是当我这样做时,任何空格,例如空格或换行符都会导致结果DOM或XMLDocument对象中出现不必要的节点:

//xml parsing example

var xp = new DOMParser();

var test = "<program><event><i>6</i></event></program>";

var xenon = xp.parseFromString(test, "text/xml");

console.log(xenon.childNodes[0].childNodes.length);
//prints 1 

//adding newlines
test = "<program>\n<event>\n<i>6</i></event></program>";

xenon = xp.parseFromString(test, "text/xml");

console.log(xenon.childNodes[0].childNodes.length);
//prints 2

我应该如何解析xml,以便只包含元素而不包括任何空格作为子节点?我已经查找了一种“清理”方法,但应该有一个解析器选项可以实现这一点。

1个回答

2

没有解析选项。解析过程会将'\n'识别为文本节点并创建它们作为文本节点。您需要做的是在解析后忽略这些文本节点。childNodes选择所有子节点,包括文本节点,应该使用childrenchildren仅返回元素子节点。或者可以像这样使用querySelectorAll

var elems = xenon.querySelectorAll("program > *");
console.log(elems.length); // outputs 1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接