javascript - 在 Javascript 中迭代 XML 标签

标签 javascript dom xml-parsing

我有一个var与底部显示的内容。这个想法是迭代这个var并获取 <module> 之间的内容和</module>标签并将其插入 array var

<module>
    <title>Tag1</title>
    <multipleChoice>
        <option>option 1</option>
    </multipleChoice>
</module>
<module>
    <title>Tag2</title>
    <multipleChoice>
        <option>option 1</option>
        <option>option 2</option>
    </multipleChoice>
</module>
<module>
    <title>Tag4</title>
    <multipleChoice>
        <option>option 1</option>
        <option>option 2</option>
    </multipleChoice>
</module>

所以这个array var将保存在[0]中位置等:

 <module>
    <title>Tag1</title>
    <multipleChoice>
        <option>option 1</option>
    </multipleChoice>
</module>

到目前为止我所尝试的是获取每个 module tag以这种方式插入到每个数组位置。我读过xmlDoc Parser但不确定这是否是执行此操作的最佳方法。

//Get module section xml
var array = [];
var startPos = str.indexOf("<module>");
var endPos = str.indexOf("</module>");
var xmlModule = str.substring(startPos,endPos).trim();

array[0] = xmlModule;

最佳答案

您可以使用 DOMParser 将字符串解析为有效的 DOM 元素

  1. 创建一个root(任何名称)元素以使其可解析。

  2. 循环模块并根据需要获取数组。

请参阅下面的演示:

var parser = new DOMParser();
var xml = `<root>
<module>
    <title>Tag1</title>
    <multipleChoice>
        <option>option 1</option>
    </multipleChoice>
</module>
<module>
    <title>Tag2</title>
    <multipleChoice>
        <option>option 1</option>
        <option>option 2</option>
    </multipleChoice>
</module>
<module>
    <title>Tag4</title>
    <multipleChoice>
        <option>option 1</option>
        <option>option 2</option>
    </multipleChoice>
</module>
</root>`;
var xmlDoc = parser.parseFromString(xml,"text/xml");

var result = Array.prototype.map.call(
xmlDoc.querySelectorAll('module'), function(e){
  return e.outerHTML.replace(/\s/g, '');
});

console.log(result);

关于javascript - 在 Javascript 中迭代 XML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45639680/

相关文章:

python - 解析除少数具有特定属性值的节点外的所有节点

javascript - 无法从 Bootstrap 4 中的自定义输入文件读取未定义的属性 'path'

java - 将 DOM 解析器更改为不对空节点使用短符号

javascript - jQuery Force 为 iframe 设置 src 属性

javascript - 根据不为零的变化计算事件数

java - 如何解析来自网站的自定义 XML 样式错误代码响应

java - 无需解析器工具即可解析 XML 字符串

javascript - 如何使用 javascript 在 <img> 元素中显示图像?

javascript - 使用 javascript 更改 svg 内所有元素的填充

javascript - 动态 html 页面导航