0

utf-16エンコーディング タイプの特別な XML ファイルがあります。このファイルはデータの保存に使用され、C# Windows フォーム アプリケーションを使用して編集する必要があります。

<?xml version="1.0" encoding="utf-16"?>
<cProgram    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ID="b0eb0c7e-f4de-4bc7-9e62-7a086a8c2fn8" Version="16.01" xmlns="cProgram">
  <Serie>N    </Serie>
  <No>123456</No>
  <type>101</type>
  <Dataset4>larg data here 2 million char</Dataset4>
</cProgram>123456FF896631N    4873821012013-06-14

問題は次のとおりです。通常の XML ファイルではありません。ファイルの最後にも文字列行があるため、このエラーが発生します。

Data at the root level is invalid. Line x, position x

xmlファイルとしてロードしようとすると

最後の行を一時的に置き換えて、内部テキストを変更した後に元に戻そうとしましたが、機能しますしかし、宣言行を失い、ファイルの最後にそのテキストがあるときにそれを書き直す方法が見つかりませんでした!_
そのため、of (Serie) および (No) ノードを変更する必要がありInnerTextますが、ファイルの末尾にある宣言行または文字列テキストを失いたくない

4

3 に答える 3

0

doc.Load(filepath); を使用したときの質問に答えさせてください。それは常に邪魔な最後の行のエラーの原因を与え、C#はデフォルトでUTF-8を使用してxmlファイルを操作します.しかし、この質問ではUTF-16です。欲しいです

 string text = File.ReadAllText(filepath);
        text = text.Replace("<Serie>N", "<Serie>"+textBox1.Text);
        text = text.Replace("<Nom>487382","<Nom>"+textBox2.Text);
       //saving file with UTF-16
        File.WriteAllText("new.xml", text , Encoding.Unicode);

この [ブログ] に関する質問:この文字列を XML ファイルに保存するにはどうすればよいですか? 「質問に関連するよりも、回答に関連している」

于 2014-04-26T05:14:34.433 に答える