<title type="html"><![CDATA[Johnson & Johnson]]></title>
は、本来意図したテキストが実際Johnson & Johnson
にあったことを前提としています。私はこの問題について、このonline discussion渡って来て、2つの異なる意見があるように見えた:
Opinion #1 - claims that this content is double-encoded。テキスト「Johnson & Johnson」テキストはエンティティエスケープされ、CDATAセクションにラップされて再びエンコードされます。彼は、XML specがCDATAでエンコードされたデータを処理する方法であるため、よく動作するxmlパーサーは
Johnson & Johnson
を返すと述べています。Opinion #2 - claims that the Atom spec takes precedent。彼はCDATAがパススルーとして機能すると述べている。
Johnson & Johnson
がJohnson & Johnson
となる。これが単なるXML文書であれば、そこでは終了します。しかし、それはAtomであるため、正しい動作を判断するためにはAtom specを調べる必要があります。アトム仕様では、type="html"
の要素にエンティティがエスケープされたhtmlが含まれていると記載されています。したがって、私たちは自由に解読する必要があります。
どれが実際に正しいのですか?適切なAtom XMLパーサーは、この特定の状況を考慮して、 Johnson & Johnson
またはJohnson & Johnson
を生成する必要がありますか?
あなたの声明では「それはその後、HTMLとして解析されなければならないので、」曖昧さが私にとっての出番です。もし、CDATAがなければ、通常は 'type =" html "要素のAtomライブラリがその要素のテキストをhtmlでデコードするでしょうか?CDATAにラップされた要素テキストをhtmlでデコードする必要がありますか? – mmcdole
* Atomライブラリ(通常type = "html"の場合)* - Atomライブラリは使用しないでください.HTMLレンダラは必要です。 – Quentin
仕様が仕様どおりにエスケープされていると明示されている場合、フィードパーサライブラリはそれを受け取り、 'type =" html "'とマークされた要素をエスケープ解除しないでください。 '
タイトル
'を返します。この質問は、CDATA要素が、エスケープされていない形式にデータを解析するときに行う典型的なアンエスケープ処理を回避するかどうかを中心にしています。 – mmcdole