1. ホーム
  2. html

[解決済み] HTMLにおける'"'エンティティの使用法

2022-03-13 11:28:19

質問

を改訂しています。 XHTML のファイルは、他の人が作成したものです。この作業の一環として、私は以下の方法で一括編集を行っています。 Linq to XML .

今気づいたのですが、元のソースのXHTMLファイルの一部に " HTMLエンティティ を、それらのファイル内のテキストノードに挿入します。例えば

<p>Greeting: &quot;Hello, World!&quot;</p>

そして、XHTMLテキストを回収する際に XElement.ToString() を使用すると &quot; エンティティに置き換わっています。 プレーン ダブルクォート :

<p>Greeting: "Hello, World!"</p>

質問です。 どなたか、原作者がどのような動機で &quot; のエンティティは、単なるダブルクオートの代わりに使用されるのでしょうか?これらのエンティティは、私が十分に理解していない目的を果たすものだったのでしょうか?それとも、私が疑っているように、本当に不要なものだったのでしょうか?

私は、以下のことを理解しています。 &quot; は、HTML属性の中に二重引用符を置く必要がある場合など、特定の文脈で必要になることがあります。例えば

<a href="/images/hello_world.jpg" alt="Greeting: &quot;Hello, World!&quot;">
  Greeting</a>

解決方法は?

を使用する動機を知ることは不可能であり、不要である。 &quot; しかし、考えられる動機としては、HTMLの規則を誤解している、そのようなコードを生成するソフトウェアを使用している(おそらくその作者が「より安全」だと考えたため)、および、要素の内容における &quot; 多くの人が「スマートクォート」を生成すると思っているようです(実際の結果を見たことはないようです)。

とにかく &quot; は、HTML (XHTML やその他の HTML バージョン) の要素コンテンツに含まれています。どのようなHTMLの仕様でも、そこにあるプレーンな文字 " に特別な意味を与えるようなものはありません。

質問にあるように、その役割を持つのは 属性値 しかし、そのような場合でも、値にダブルクォートが含まれている場合は、シングルクォートをデリミタとして使用する方が簡単な場合がほとんどです。 alt='Greeting: "Hello, World!"' または、自然言語テキストの誤りを訂正することが許される場合は、適切な引用符を使用します。 alt="Greeting: “Hello, World!”"