C#アプリケーションにXMLファイルをロードしているときに、
名前を「1」文字、16進値0x31で始めることはできません。行2、位置2。
XMLタグはこのように始まります。
<version="1.0" encoding="us-ascii" standalone="yes" />
<1212041205115912>
このタグを変更することは一切ありません。
どうすればこれを解決できますか?
C#アプリケーションにXMLファイルをロードしているときに、
名前を「1」文字、16進値0x31で始めることはできません。行2、位置2。
XMLタグはこのように始まります。
<version="1.0" encoding="us-ascii" standalone="yes" />
<1212041205115912>
このタグを変更することは一切ありません。
どうすればこれを解決できますか?
あなたが書いたものはxml標準に違反しているので、あなたはタグ名を変更することになっています。ここでそれの興味深い部分を覚えておいてください:
XML要素 は次の命名規則に従わなければなりません:
任意の名前を使用でき、単語は予約されていません。
標準を維持するあなたの問題を解決するための提案として:
Number value="1212041205115912"/>
<_1212041205115912/>
もちろん、独自のフォーマットパーサーを作成することで、提案する構造を維持できますが、将来的に誰かがフォーマットを拡張し、 xmlそれは実際にはそうではなく、彼/彼女はそれに腹を立てることができます。さらに、カスタム形式が必要な場合は、より単純なものを使用します。つまり、テキストファイルに「<」と「>」を付けても、公式に認識されている形式でない場合は値が追加されないため、次のような形式を使用することをお勧めします。代わりに、単純なプレーンテキストファイル。
あなたが絶対にそれを変えることができないならば、例えば。何らかの理由で、このフォーマットはすでに公開されており、他のシステム/顧客/その他によって使用されています。
無効なxmlドキュメントであるため、解析する前にクリーンアップしてみてください。例えば。すべての<number>タグを<IMessedUp>number</ IMessedUp>に置き換える正規表現を作成し、それを解析します。
それを行うための一種の厄介な方法ですが、私はあなたの問題を解決します。
このドキュメントを処理する必要がある場合は、XMLとして考えるのをやめ、XMLツールを使用して処理することについての考えを捨ててください。あなたは独自のフォーマットを扱っており、それを処理するために独自のツールを作成する必要があります。XMLテクノロジを使用する利点が必要な場合は、有効なXMLになるようにドキュメントを再設計する必要があります。