javascript - 对 XML 文档中的特殊字符进行转义

标签 javascript xml for-loop iteration markup

我在网页上有一组按钮标签,我想获取一个其内部文本为“保存”的特定按钮标签。 (它没有 id。)所以我有这个代码

var tags = document.getElementsByTagName("button");
for (var i = 0; i < tags.length; i++) {
    if (tags[i].innerText === 'Save') {
        tags[i].click();
        break;
    }
}

当我在 Chrome 控制台中尝试时,效果非常好。但我不能将其包含在我的 jelly 文件中(这是一个将被处理为 html 的 xml 标记;类似于 jsp 的东西。)

问题出在 for 循环中的“<”运算符,导致了此问题

SAXParserException:“元素的内容必须由格式正确的字符数据或标记组成。”

我学会了不要将 for..in 循环与数组一起使用。我能做些什么?请建议我一些解决方法。

最佳答案

您正在解决错误的问题。您的问题是“在 XML 中包含 < 字符会破坏 XML”。您需要找出如何正确包含这样一个字符,而不是避免该字符出现在您的数据中。没有必要避免标准的 for 循环。

要么用 CDATA 标记包装该部分(这会阻止 XML 特殊字符(CDATA 序列结尾除外)变得特殊),要么表示 <&lt;在 XML 中。

<![CDATA[
for (var i = 0; i < j; i++) {
    etc(i);
}
]]>

for (var i = 0; i &lt; j; i++) {
    etc(i);
}

关于javascript - 对 XML 文档中的特殊字符进行转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10222476/

相关文章:

javascript - 使用 XPage 或 HTML 打印页眉和页脚

xml - 将 Scala 对象转换为 XML

javascript - 嵌套数组 - 在使用 for 循环嵌套时更新子数组不起作用?

python - 处理数组 : how to avoid a "for" statement

php - 如何使用magento2中的自定义模型将数据保存到自定义表

r - 按日期范围和分类变量组合数据集

javascript - 自定义信用卡号长度

javascript - 将变量从父函数传递给子函数

javascript - 如何在不使用 html 和开发工具的情况下仅运行 Javascript 文件?

c# - 将 XML 元素存在反序列化为 C# 中的 bool