getElementsByTagName 在三角括号处停止

getElementsByTagName stopping at triangle bracket

我在这种情况下使用 getElementsByTagName

 TheTitle = xmlDoc.getElementsByTagName("ArticleTitle")[i].childNodes[0].nodeValue;

获取节点值但是当文本包含三角括号时如:

<ArticleTitle>"The Cat Sat on The <i>Mat</i>"</ArticleTitle>

我只能检索

The Cat Sat on The

如何防止节点文本中的三角括号过早结束文本捕获?

<ArticleTitle>"The Cat Sat on The <i>Mat</i>"</ArticleTitle> 有三个子节点

  1. 文本节点:The Cat Sat on The
  2. <i> 节点 <i>Mat</i>
  3. 文本节点"

所以,.childNodes[0].nodeValue;当然就是The Cat Sat on The

要修复,请使用:

TheTitle = xmlDoc.getElementsByTagName("ArticleTitle")[i].textContent;

改为

let doc = `<xml><ArticleTitle>"The Cat Sat on The <i>Mat</i>"</ArticleTitle></xml>`;
let xmlDoc = new DOMParser().parseFromString(doc, 'text/xml');
let TheTitle = xmlDoc.getElementsByTagName("ArticleTitle")[0].textContent;
console.log(TheTitle);