XML パーサー: テキスト コンテンツで無効な文字が見つかりました

この記事は、Microsoft XML パーサー (MSXML) を使用して特殊文字を含む拡張マークアップ言語 (XML) を解析するときのエラーを解決するのに役立ちます。

元の製品バージョン: .NET Framework
元の KB 番号: 238833

現象

Microsoft XML パーサー (MSXML) を使用して特殊文字を含む XML を解析すると、パーサーは最初の特殊文字の行と位置に次のエラー メッセージを報告することがあります。

テキスト コンテンツで無効な文字が見つかりました。

原因

XML ドキュメントは、適切な文字エンコード スキームでマークされていません。

解決方法

  • XML 処理命令で適切なエンコード 方式を指定します。
  • XML データを適切な UTF-8 として再エンコードします。

状態

この動作は仕様です。

詳細

特殊文字は、0x00の標準のアメリカ標準コード (ASCII) 文字セットの範囲外の任意の文字 (アクセント、ウムラウト、またはその他の発音記号を含むラテン文字など) 0x7Fを指します。 XML ドキュメントの既定のエンコード スキームは UTF-8 で、値が 0x80 以上の ASCII 文字を他の標準エンコード スキームとは異なる方法でエンコードします。

ほとんどの場合、この問題は、単純な iso-8859-1 エンコード スキームを使用するデータを操作している場合に発生します。 この場合、最も簡単な解決策は、通常、[ 解決策 ] セクションの最初の一覧です。 たとえば、次の XML 宣言を使用します。

<?xml version="1.0" encoding="iso-8859-1" ?>
<rootelement>
    ...XML data...
</rootelement>

代わりに、数値エンティティ参照を使用して、これらの各文字をエンコードできます。 たとえば、特殊文字 á を使用したり、(10 進バージョン)、または (16 進バージョン) を使用 <test> &#225;</test> できます <test>&#x00E1;</test>