首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xml addattribute转义&

xml addattribute转义&
EN

Stack Overflow用户
提问于 2011-02-01 04:42:50
回答 2查看 599关注 0票数 1

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

使用javascript

代码语言: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“

我得到了

代码语言:javascript
复制
"car's & trucks" 
"car's & trucks" 
"car's & trucks"

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

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

如果字符串中不包含&,则此方法有效。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-01 05:09:16

正如您在注释中注意到的,文本在存储到属性中时不会重新转义。我认为您所看到的是,".xml“访问器返回给您一些实际的XML标记,以便您最终获得这样的属性值。

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

代码语言:javascript
复制
<tag c='car&apos;s &amp; trucks'>

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

在JavaScript中设置属性值时,不需要转义特殊的XML元字符。只有在准备要传递给XML解析器的实际XML标记时,它才很重要。在JavaScript中处理完DOM之后,它已经被解析了。

票数 3
EN

Stack Overflow用户

发布于 2011-02-01 19:38:10

转义是当DOM树被序列化为词法XML时自动发生的事情。如果在将字符串添加到DOM树之前对其进行转义,那么正如您已经发现的那样,它将以双重转义结束。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4855868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档