在 XML 中使用 DOMParser 以使用 JavaScript 获取属性

Using DOMParser in XML to get attribute using JavaScript

我有一个从 API 获得的 XML 文件,一小部分是:

       <Abstract>
            <AbstractText Label="BACKGROUND">A large ...</AbstractText>
            <AbstractText Label="METHODS">We modeled....</AbstractText>
            <AbstractText Label="RESULTS">Mammary glands ... </AbstractText>
            <AbstractText Label="CONCLUSIONS">We report...</AbstractText>
        </Abstract>

我的JavaScript代码是:

      parser = new DOMParser();
      xmlDoc = parser.parseFromString(response.data, "text/xml");
      const abstracts = xmlDoc.querySelectorAll("AbstractText");

并使用

        abstracts.forEach(a => {         
        abstract_text += a.innerHTML;
        abstract_text += "<br /><br />";
      });

我可以阅读所有的文字。我的问题是我无法获取 Label 值。我试过了

    let x = a.attribute("Label").nodeValue;

       let x = a.attribute("Label");

既是属性又是属性。

感谢所有帮助。

这是你想要的a.getAttribute('Label')

这是一种方法

const xml = `<Abstract>
    <AbstractText Label="BACKGROUND">A large ...</AbstractText>
    <AbstractText Label="METHODS">We modeled....</AbstractText>
    <AbstractText Label="RESULTS">Mammary glands ... </AbstractText>
    <AbstractText Label="CONCLUSIONS">We report...</AbstractText>
</Abstract>`;

parser = new DOMParser();
xmlDoc = parser.parseFromString(xml, "text/xml");
const abstracts = xmlDoc.querySelectorAll("AbstractText");

abstracts.forEach(a => {
  console.log(a.textContent, a.getAttribute('Label'));
});

你也可以

a.attributes['Label'].nodeValue
a.attributes.Label.nodeValue
a.attributes['Label'].textContent
a.attributes.Label.textContent