- PR -

xmlタグ付きのデータを変換したい

1
投稿者投稿内容
hal
常連さん
会議室デビュー日: 2004/02/17
投稿数: 29
投稿日時: 2004-05-21 11:19
お世話になっております。

asp.net(c#)にてwebアプリケーションの開発を行っております。
早速質問させて下さい。
あるDBに格納してあるxml形式のタグ付きの文字列を読み込みプログラムで使用できるように変換したいと思っています。
例えば、
<kiji>
<kijis>
<title>xmlタグ付きのデータを変換したい</title>
<naiyou>質問内容</naiyou>
<comment>コメント</comment>
</kijis>
</kiji>
というような文字列(実際は改行なし)を
title…xmlタグ付きのデータを変換したい
naiyou…質問内容
comment…コメント
という感じに変換してプログラムで使用したいのです。

.netのxml使用のライブラリを色々調べてみたのですが、xml文書(.xml等)を外部ファイルとして読み込んで変換する方法は解ったのですが(xmldocument等)、上記のようなタグ付き文字列の変換方法が見つかりません。
そもそも「タグを使ってるだけでそんなのxmlでもなんでもないよ」と言われそうな気もしますが、xmlとして利用する方法はないでしょうか?

また、仮に文字列の先頭に
<?xml version="1.0"?>
というようにxmlの宣言文を付加すればこの全体の文字列はxmlであると認識してくれるのでしょうか?その場合xmldocument等でインスタンスを生成するにはどうすれば良いのでしょうか?
普通xml文書からxmldocument等のインスタンスを生成するには
xmldocument doc = new xmldocument();
doc.load("〜.xml")
という風にファイル(path)名称を指定するので、今回の文字列としてのxml文書の場合どうすれば良いのでしょうか?

xml板に投稿しようか迷いましたが、.net使用なのでこちらに質問させて頂きました。
よろしくお願いします。
ぢゃん♪
大ベテラン
会議室デビュー日: 2003/06/12
投稿数: 208
お住まい・勤務地: 都内
投稿日時: 2004-05-21 11:41
ファイルでないXML文字列をXmlDocumentへ読み込むなら、文字列にSystem.IO.StringReaderをかぶせればLoadできますよ。

[ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2004-05-21 11:48 ]

引用:

きくちゃんさんの書き込み (2004-05-21 12:45) より:

えーと、XmlDocument.LoadXml メソッドがそのものズバリだと思うんですが。


おー、すっかり忘れてました


ここからは余談っぽいですが……。
引用:

#何か違うのかな...。


DTD検証やスキーマ検証などをしたいときはLoadメソッドの方でないと検証されないとか、だそうで。
#私は検証を使ってません

[ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2004-05-21 12:54 ]
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-05-21 12:45
えーと、XmlDocument.LoadXml メソッドがそのものズバリだと思うんですが。
#何か違うのかな...。
hal
常連さん
会議室デビュー日: 2004/02/17
投稿数: 29
投稿日時: 2004-05-21 13:01
お世話になっております。

ぢゃん♪さん、きくちゃんさんご回答ありがとうございました。
StringReaderを使用しても出来ましたが、XmlDocument.LoadXmlならそのまんまでした(汗)
でもスキーマ検証が必要ならStringReaderを通してLoadが有効なのですね。

勉強になりました。ありがとうございました。
ぢゃん♪
大ベテラン
会議室デビュー日: 2003/06/12
投稿数: 208
お住まい・勤務地: 都内
投稿日時: 2004-05-21 13:11

1箇所だけ、どうでもいい補足を。
引用:

でもスキーマ検証が必要ならStringReaderを通してLoadが有効なのですね。


読み込み時に検証を実行する方法ですが、XmlDocument.LoadXml メソッドの解説を読んでいただければ分かるとおり、XmlValidatingReaderクラスを経由してLoadメソッドを呼ぶ必要がありますので。
検証を実行する必要がない場合には、どうでもいい話ですが。

[ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2004-05-21 13:15 ]
1

スキルアップ/キャリアアップ(JOB@IT)