次の方法で共有


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

この記事は、Microsoft XML パーサー (MSXML) を使用して特殊文字を含む XML (Extensible Markup Language) を解析するときのエラーを解決するのに役立ちます。

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

症状

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

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

原因

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

解決策

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

ステータス

この動作は設計によるものです。

詳細情報

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

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

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

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