Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

CDATA output containing ]]> is not well-formed XML

オープン 初心者向け
#1,097 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

@bconnnnn がすでに取り組んでいます。

2026年10月9日 から。

  • #1099 @bconnnnn による — オープン

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
70/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
cpp
領域
backend

調査の方向性

まず XMLPrinter::PushText と issue で示されている XMLDocument::NewText/SetCData の経路を読み、次に a]]>b を使って例を再現します。出力された XML が解析可能で、どちらの使用経路でも元のテキストに戻ることを確認します。CDATA 出力に ]]> が含まれていても、値を変更せず整形式を保てれば完了です。

索引モデルが issue の本文から書いたものです。

説明

On master 8224e42, writing the text a]]>b in CDATA mode produces <r><![CDATA[a]]>b]]></r>. The embedded ]]> closes the CDATA section early and the remaining ]]> is invalid character data. Python's xml.etree parser rejects the output. Normal-text mode writes <r>a]]&gt;b</r> and round-trips the original value.

This occurs both with XMLDocument::NewText("a]]>b") followed by SetCData(true) and with XMLPrinter::PushText("a]]>b", true). XMLPrinter::PushText writes the value directly between the CDATA delimiters. Would splitting the value across adjacent CDATA sections be an acceptable fix? That can preserve the text while producing valid XML. AI-assisted investigation and reproduction.

主要言語
C++
スター
5.8k
フォーク
2k
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

leethomason/tinyxml2 のほかの issue

leethomason/tinyxml2 の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。