转义 XML 文档中的特殊字符
Escape special characters in XML documents
我在网页上有一组按钮标签,我想获得一个特定的按钮标签,其内部文本是"保存"。(它没有 ID。所以我有这个代码
var tags = document.getElementsByTagName("button");
for (var i = 0; i < tags.length; i++) {
if (tags[i].innerText === 'Save') {
tags[i].click();
break;
}
}
当我在 chrome 控制台中尝试时,它运行良好。但是我不能把它包含在我的果冻文件中(这是一个将被处理成 html 的 xml 标记;类似于 jsp。
问题出在 for 循环中的"<"运算符上,这导致了这种情况
SAXParserException:"元素的内容必须由格式正确的字符数据或标记组成。
我学会了不用于..在带有数组的循环中。我能做什么?请向我建议一些解决方法。
你解决的问题错了。您的问题是"在 XML 中包含<
字符会破坏 XML"。您需要了解如何正确包含此类字符,而不是避免在数据中出现一个字符。没有必要避免标准的 for 循环。
标记(阻止 XML 特殊字符(CDATA 序列的末尾除外)表示特殊字符)<
,或者在 XML 中使用<
表示。
<![CDATA[
for (var i = 0; i < j; i++) {
etc(i);
}
]]>
或
for (var i = 0; i < j; i++) {
etc(i);
}
您可以使用
新的 Array.forEach
方法进行迭代,但它仅在 JavaScript 1.6 中可用:
var tags = Array.prototype.slice.call(document.getElementsByTagName("button"));
tags.forEach(function (tag) {
// ...
});
但真正的解决方案是将您的代码放入<![CDATA[]]>
:
<code>
<![CDATA[
var tags = document.getElementsByTagName("button");
for (var i = 0; i < tags.length; i++) {
// ...
}
]]>
</code>
var limit = tags.length;
//loop until 0 (which is false)
while(limit) {
if (tags[tags.length-limit].innerText === 'Save') {
tags[tags.length-limit].click();
break;
}
limit--;
}
把它放在<[CDATA[ ... ]]>
里面
编辑:语法错误...
相关文章:
- 在粘贴到文本字段Jquery时检查并突出显示不支持的特殊字符
- 替换整个文档JQuery中的字符
- 如何将文本字段('+<>$“)中的特殊字符保存到数据库中,然后使用 PHP 检索它们
- 如何检查文本字段是否仅包含特殊字符
- 在 PHP 中使用邮件函数时正确转义 JavaScript 文档代码中的特殊字符
- 转义 XML 文档中的特殊字符
- 使用 JS 查找和替换文档中的特定文本字符
- 如何在输入元素文本字段中显示特殊字符,但仍保留JQuery中的值
- 无法使用特殊字符更新mongodb文档
- 如何在html中转换XML文档中的html特殊字符
- 关于字符前后空字符串的文档
- 找不到HTML文档的字符编码声明
- 如何从文本文件中为自动填充文本字段编码特殊字符
- 什么是最好的方法来计算字符数在html dom节点(在文档节点使用javascript范围库)
- javascript可以从源文档中提取精确的(逐字符)HTML吗?
- 如何从文档中获得完整的url.当其中有一些特殊字符时引用
- 在文本区和Javascript代码中显示特殊字符
- 如何处理HTML文档和JS中的特殊字符
- 我想在只允许空格、a-Z、a-Z、0-9的文本字段上检查按键或向上键事件的特殊字符的有效性
- Javascript:如何验证一个只有字母数字,没有特殊字符或逗号的文本字段