XmlTextWriter.WriteStringを使用して文字列の空白を保持する
-
03-07-2019 - |
質問
C#でXMLドキュメントを書いています。
このようなものがあります...
string output = "REAPP DUE NO OF M CASE NBR APPL NBR DATE GRPS M CASE NBR APPL NBR DATE GRPS _ _ _";
これを行う...
objXmlTextWriter.WriteStartElement("Case");
objXmlTextWriter.WriteString(record);
objXmlTextWriter.WriteEndElement();
そしてxml要素は次のようになります...
<Case>REAPP DUE NO OF REAPP DUE NO OF M CASE NBR APPL NBR DATE GRPS M CASE NBR APPL NBR DATE GRPS _ _ _ </Case>
基本的には、1〜1文字の空白よりも長い空白を変換しました。
これを防ぐ方法
解決
前に、混乱してしまいました(間違った答えを削除しました)。しかし、私はあなたが見ているように見えるものを再現することはできません。このプログラムを確認してください...スペースを保持します。
class Program
{
static void Main(string[] args)
{
XmlWriter w = XmlTextWriter.Create("./foo.xml");
w.WriteStartElement("foo");
w.WriteString(" THIS HAS VARYING SPACeS ");
w.WriteEndElement();
w.Close();
StreamReader sr = new StreamReader("./foo.xml");
Console.WriteLine(sr.ReadToEnd());
Console.ReadKey();
}
}
他のヒント
OK ...
これは、IE表示の問題のみです。私が推測するフォントと関係がある。
notepad ++でXMLを開くと、実際に空白が適切に保持されていることがわかります。
WriteString()の代わりに、IEでの表示が重要な場合は、WriteCData()を使用してテキストをCDATAブロックで囲むことができます。
所属していません StackOverflow