こんばんわ。
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操作関連クラスでは実現できないのではないかと思い、少々混乱しています。
これだけの情報でこちらの意図していることが理解できましたら、その解決法(検索キーワードだけでもかまいません)をご教授いただければと思います。
補足が必要であればお申し付けください。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
XMLの大きさにもよるのですが,System.Xml.XmlDocumentを使うことはできませんか。
XmlDocumentはDOMなので,XMLの階層構造をそのまま扱うことができます。
問題点は,全部読み込んでしまうので,対象のXMLが大きいとメモリを食いすぎる可能性があることです。
他には,XmlReaderのInnerXmlで得た詳細要素の内容に開始タグと終了タグを付けてXmlDocumentで扱うとか。
これならば,XMLの一部分しか扱わなくて済むはずです。
が,処理は全部読み込む場合に比べて面倒になります。
参考URL:http://msdn2.microsoft.com/ja-jp/library/system. …
すいません、ご回答いただいたurlを参考に実装実験をしており、返信に時間がかかってしまいました。
XmlDocumentとXmlTextReaderの組み合わせで思い通りの動作を実現できました。
大変参考になりました。
また、似たような問題がでて自分で解決できない状況になりましたらOKWaveに投稿しますので、よろしければご回答にご協力いただければと思います。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- XML XML同じ名前の要素を自動で集約するツール 1 2022/04/11 09:21
- HTML・CSS HTMLタグのあるCSVファイルを利用する方法 4 2023/03/19 14:41
- アプリ おすすめのパスワード管理アプリを教えてください。(iOSとWindows対応) 4 2023/01/19 02:08
- Excel(エクセル) エクセルの数式について教えてください。 7 2023/06/18 10:16
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
- AJAX 自作の地図をグーグルマップのようにしたい 3 2022/11/15 11:53
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数にHTMLを代入する場合
-
JSFタグのfタグとは
-
print "<img src=\\"0.jpg\\/>\...
-
objective-cでのHTMLタグ表示に...
-
エスケープ文字の復帰(¥r)と...
-
ソースコードの1行が長いとき...
-
VBAのコマンドボタンの文字列の...
-
ファイルから読み取った改行文...
-
メッセージボックスで1025文字...
-
jsp 改行コードで改行させて表...
-
全角英数文字が嫌われる理由を...
-
全角括弧と全角読点の間隔を狭...
-
Excel関数「COUNTIF」で”文字”...
-
記号は半角と全角どちらがよい...
-
JAVA System.out.println の ...
-
COBOLの改行
-
C++で空Enterの入力を判...
-
SJISで取得した半角カナをUTF-8...
-
文字の入力で横バー上段、中断...
-
PHPで変数から1行目だけを取得...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
reuterの記事をbeautiful.soup....
-
正規表現で複数行に渡る範囲を...
-
変数にHTMLを代入する場合
-
javascriptの正規表現でhtmlか...
-
タグにはさまれている文字以外...
-
VBSでのhtmlタグ要素名の置換
-
objective-cでのHTMLタグ表示に...
-
phpの正規表現でstyle="●●"を削...
-
Strutsでリンクを動的に生成したい
-
PHPスクレイピングが上手くいき...
-
htmlのソースからテーブルの値...
-
JSFタグのfタグとは
-
ASP.NET(C#)とhtmlの#include
-
あるタグから対応するタグまで...
-
preg_replaceでの正規表現によ...
-
eclipseより、タスク・タグの使...
-
HTMLファイルの書き換え
-
Nvuで作成したhtmlをコピペして...
-
htmlタグ間の特定文字置換
-
[正規表現][入れ子]ネストされ...
おすすめ情報