アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんばんわ。
MS C#2005でXMLファイルをDBに取り込むPGを作っています。
困ったことが発生したのですが、調べるにしてもどこからせめてよいのか見当がつかなくなり、どうにもならなくなってしまいました。

以下に簡単ですが、読み込みしたいXMLを記述します。

<?xml version="1.0" encoding="utf-8"?>
<XML情報 version="1.0">
  <リスト 番号="1">
    <概要>
      <表示番号>0123456789</表示番号>
      <概要タグ2>xxx</概要タグ2>
      <概要タグ3>xxx</概要タグ3>
        ・
        ・
    </概要>
    <詳細>
      <注文>
        <アイテム 品目="○○">○○</アイテム>
        <アイテム 品目="□□">□□</アイテム>
      </注文>
    </詳細>
  </リスト>
</XML情報>

上記のXMLファイルから「<詳細>~</詳細>」間をタグつきの文字列として取り出し、いったんバッファ上に確保した上でDB(SQL Server2005)へ取り込みしたいのです。
ただし、DBへ取り込む際に「<アイテム>」部分の値を一部変更するので(具体的には「品目」属性の値を手直しする)XML的な取り扱いをしながらバッファ操作する方法を探しています。
問題なのは、XMLファイルから「<詳細>~</詳細>」間をタグつきの文字列として取り出す振る舞いを検索エンジンなどで探すにあたって、どういったキーワードで探したらいいのか皆目見当がつきません。

XMLReaderクラスなどの項目で検索しているのですが、思ったような結果が導き出せないでいます。
もしかすると、XML操作関連クラスでは実現できないのではないかと思い、少々混乱しています。

これだけの情報でこちらの意図していることが理解できましたら、その解決法(検索キーワードだけでもかまいません)をご教授いただければと思います。

補足が必要であればお申し付けください。

よろしくお願いします。

A 回答 (1件)

XMLの大きさにもよるのですが,System.Xml.XmlDocumentを使うことはできませんか。


XmlDocumentはDOMなので,XMLの階層構造をそのまま扱うことができます。
問題点は,全部読み込んでしまうので,対象のXMLが大きいとメモリを食いすぎる可能性があることです。

他には,XmlReaderのInnerXmlで得た詳細要素の内容に開始タグと終了タグを付けてXmlDocumentで扱うとか。
これならば,XMLの一部分しか扱わなくて済むはずです。
が,処理は全部読み込む場合に比べて面倒になります。

参考URL:http://msdn2.microsoft.com/ja-jp/library/system. …
    • good
    • 0
この回答へのお礼

すいません、ご回答いただいたurlを参考に実装実験をしており、返信に時間がかかってしまいました。
XmlDocumentとXmlTextReaderの組み合わせで思い通りの動作を実現できました。

大変参考になりました。

また、似たような問題がでて自分で解決できない状況になりましたらOKWaveに投稿しますので、よろしければご回答にご協力いただければと思います。

どうもありがとうございました。

お礼日時:2007/12/13 14:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!