我正在修改由另一方编写的一些X
HTML文件.作为这项工作的一部分,我正在通过
Linq对
XML进行大量编辑.
我刚刚注意到,这些文件中的文本节点中的一些原始源XHTML文件包含"
HTML entity.例如:
<p>Greeting: "Hello,World!"</p>
而当通过XElement.ToString()恢复XHTML文本时,& quot;实体正在被纯双引号替代:
<p>Greeting: "Hello,World!"</p>
问题:任何人都可以告诉我,原作者有什么动机可以使用&实体而不是纯双引号?这些实体是否服务于我不完全理解的目的?或者,我怀疑他们真的没有必要吗?
我明白了在某些上下文中是必需的,例如当需要在HTML属性中放置双引号时.例如:
<a href="/images/hello_world.jpg" alt="Greeting: "Hello,World!""> Greeting</a>
解决方法
知道使用“和”的动机是不可能的,也是不必要的.在元素内容中,但可能的动机包括:对HTML规则的误解;使用生成这样的代码的软件(可能是因为它的作者认为它是“更安全的”);并误解“的意思:许多人似乎认为它产生”智慧报价“(他们显然从未看过实际的结果).
无论如何,从来没有必要使用& quot;在HTML(XHTML或任何其他HTML版本)中的元素内容.任何HTML规范中都没有任何特定的含义可以给普通字符“there”.
正如问题所述,它在属性值中有其作用,但即使在它们中,如果该值包含双引号,也就是简单地使用单引号作为分隔符. alt =’问候语:“你好,世界!”“,或者如果您被允许更正自然语言文本中的错误,请使用适当的引号,例如alt =“问候:”你好,世界!“”