2

C# で XML との間でデータを変換する際に常に問題があるようです。作成する必要がないと思われる場合でも、常に完全な XMLDocument オブジェクトを作成する必要があります。この場合、MS SQL 2005 サーバーに SQLXML 列があり、それを引き出して、パラメーターとして XMLNode を必要とする関数にプッシュしようとしています。これは簡単だと思うかもしれませんが、文字列に変換して新しい XMLNode オブジェクトを作成する以外に、正しい方法がわかりません。

SqlDataReader、sqlComm.ExecuteReader() を使用してリーダーをロードし、sqlReader.GetSqlXml(0) を使用して SQLXML オブジェクトを取得できますが、それを XmlNode に変換するにはどうすればよいでしょうか?

逆に、sqlComm.ExecuteXmlReader() を使用して XmlReader を取得できますが、リーダーから XmlNode を抽出するにはどうすればよいでしょうか? http://bytes.com/forum/thread177004.htmlは、XmlTextReader では実行できないと言っていますが、XmlNodeReader を使用する必要がありますか?

助けてください!

4

1 に答える 1

5

結局使わなくてもよかったのですが、一番いいと思うものを見つけました。基本的に、XmlReaderをロードし、リーダーからXmlDocumentを作成してから、ドキュメントからノードのリストをXmnLodeListに選択します。これは、ForEachステートメントで使用できます。サンプルコードは次のとおりです。

System.Xml.XmlReader sqlXMLReader = sqlComm.ExecuteXmlReader();
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
xmlDoc.Load(sqlXMLReader);
System.Xml.XmlNodeList xnlJobs = xmlDoc.SelectNodes("/job");

まだ地獄のように複雑ですが、少なくともxmlからstringへの変換はありません。

于 2008-09-18T08:15:20.203 に答える