javascript - xml 添加属性转义 &

标签 javascript xml xmldom

我正在转义一个字符串以匹配另一个字符串。

使用javascript

function escapeCode()
{
     var a = RequestIsland.XMLDocument.firstChild;
     var lineItems = a.selectNodes( "//a/p" );
     while ( (lineItem = lineItems.nextNode()) != null )
     {      
        var text = lineItem.getAttribute("c");
        alert(text);
        text = escapeXML(text);
        lineItem.setAttribute("c",text);
        alert(text);
        alert(lineItem.xml);
     }
}

使用字符串“car's & trucks”

我明白了

"car's & trucks" 
"car's & trucks" 
"car's & trucks"

不知何故,当文本进入属性时,它再次转义 & 。

有人知道为什么会发生这种情况以及如何阻止它吗?

如果 & 不在字符串中,这将起作用。

最佳答案

好吧,正如您在评论中指出的那样,在将文本存储 属性中时,文本不会被重新转义。我认为您看到的是“.xml”访问器正在返回一些实际的 XML 标记,以便您最终得到这样的属性值。

如果您考虑标记本身,对于您的原始未转义字符串,您需要这样做才能使其成为有效的 XML:

<tag c='car&apos;s &amp; trucks'>

换句话说,如果您引用与号和撇号,标记将无效。您编写的代码试图将属性值更新为包含转义序列的字符串

从 JavaScript 设置属性值时,无需转义特殊的 XML 元字符。只有当您准备将实际的 XML 标记传递给 XML 解析器时,它才重要。一旦您在 JavaScript 中弄乱了 DOM,XML 就已经被解析过了。

关于javascript - xml 添加属性转义 &,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4855868/

相关文章:

javascript - Jquery 平滑滚动 Onclick

java - JAXB 和抽象类

Java JAXB 编码到 DOM 文档

xml - VBA - 显示每个节点及其来自 XML 的值

javascript - 在 d3 轴上显示持续时间

javascript - 我可以在 openwhisk 中安排一次性操作吗?

java - 为什么此 Activity 显示在新的Android版本中而不显示在旧版本中

c# - .NET MVC Linq -> XML RSS 阅读器 : Twitter XML Parsing Error

javascript - 获取页面源码

javascript - 以匿名函数为父函数的彩票号码生成器