C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: XML出力で改行文字を出力するには?


(過去ログ 48 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■25884 / inTopicNo.1)  XML出力で改行文字を出力するには?
  
□投稿者/ エレノア (9回)-(2008/09/26(Fri) 18:36:56)

分類:[.NET 全般] 

VS.NET 2005 ASP.NET C#で開発しています。

XmlDocumentでXMLを出力しているのですが、
改行を出力できずにこまっております。

「&#10;」を出力したいのですが、
出力時に
「&amp;#10;」にエスケープされてしまいます。

エスケープせずに、「&#10;」のままを出力する方法はないのでしょうか?
わかる方がいましたら、ご教授よろしくお願いします。
引用返信 編集キー/
■25889 / inTopicNo.2)  Re[1]: XML出力で改行文字を出力するには?
□投稿者/ みきぬ (112回)-(2008/09/26(Fri) 19:23:30)
No25884 (エレノア さん) に返信
> エスケープせずに、「&#10;」のままを出力する方法はないのでしょうか?
> わかる方がいましたら、ご教授よろしくお願いします。

・InnerXmlプロパティで "&#10;" を設定する

ほかにはちょっと思いつかないです。


引用返信 編集キー/
■25892 / inTopicNo.3)  Re[1]: XML出力で改行文字を出力するには?
□投稿者/ 桂小ネタ (1回)-(2008/09/26(Fri) 20:26:17)
No25884 (エレノア さん) に返信
> VS.NET 2005 ASP.NET C#で開発しています。
>
> XmlDocumentでXMLを出力しているのですが、
> 改行を出力できずにこまっております。
>
> 「&#10;」を出力したいのですが、
> 出力時に
> 「&amp;#10;」にエスケープされてしまいます。

XMLの仕様です。
「<」(半角)もそうですが、タグ(要素)と誤認するため、エスケープします。

>
> エスケープせずに、「&#10;」のままを出力する方法はないのでしょうか?
> わかる方がいましたら、ご教授よろしくお願いします。

テキストノードに「&#10;」出力したい場合、テキストにノードではなしにCDataSectionノードを使用します。
 #http://www.atmarkit.co.jp/aig/01xml/cdata.html
ゆえに、XmlDocument#CreateCDataSectionでいけるかと。
http://msdn.microsoft.com/ja-jp/library/system.xml.xmldocument.createcdatasection(VS.80).aspx
引用返信 編集キー/
■25893 / inTopicNo.4)  Re[2]: XML出力で改行文字を出力するには?
□投稿者/ エレノア (10回)-(2008/09/26(Fri) 20:26:59)
みきぬ さん返信ありがとうございます。

> ・InnerXmlプロパティで "&#10;" を設定する
InnerXmlを試してみたのですが、
「&#10;」が「\r\n」に変換されてしまいます・・・

自分の設定等、使い方が悪いのでしょうか?
引用返信 編集キー/
■25895 / inTopicNo.5)  Re[2]: XML出力で改行文字を出力するには?
□投稿者/ エレノア (11回)-(2008/09/26(Fri) 20:59:19)
桂小ネタさん、返信ありがとうございます。

CDATAを試してみたのですが、エスケープされず行けたかなと思ったのですが、
残念ながら今回の条件には当てはまりませんでした。

XMLを出力して、その後Excelで加工を行うために、
「&#10;」を改行として認識する必要があるのです。

「&#10;」の出力方法だれかわかる方いましたら、
ご教授よろしくお願いします。
引用返信 編集キー/
■25898 / inTopicNo.6)  Re[3]: XML出力で改行文字を出力するには?
□投稿者/ れい (801回)-(2008/09/27(Sat) 00:10:51)
No25895 (エレノア さん) に返信
> 桂小ネタさん、返信ありがとうございます。
>
> CDATAを試してみたのですが、エスケープされず行けたかなと思ったのですが、
> 残念ながら今回の条件には当てはまりませんでした。
>
> XMLを出力して、その後Excelで加工を行うために、
> 「&#10;」を改行として認識する必要があるのです。
>
> 「&#10;」の出力方法だれかわかる方いましたら、
> ご教授よろしくお願いします。

XmlWriterを作成するときに
NewLineChars = "&#10;";
CheckCharacters = false;
NewLineHandling = NewLineHandling.Replace;
なXmlWriterSettingsを渡し、
そのXMLWriterでXMLDocumentを書き込むと
改行が&#10;なXMLを作ることができます。

全部の改行が&#10;になりますが。


引用返信 編集キー/
■25899 / inTopicNo.7)  Re[3]: XML出力で改行文字を出力するには?
□投稿者/ みきぬ (113回)-(2008/09/27(Sat) 00:13:13)
No25893 (エレノア さん) に返信
> みきぬ さん返信ありがとうございます。
>
>>・InnerXmlプロパティで "&#10;" を設定する
> InnerXmlを試してみたのですが、
> 「&#10;」が「\r\n」に変換されてしまいます・・・
>
> 自分の設定等、使い方が悪いのでしょうか?

すみません。私が質問を思いっきり勘違いしてたみたいです。
気にしないでくださいorz
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -