1

多くの XML 文字列を格納している mysql データベースにテーブルがあります。XML 文字列は次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<plant>
  <concept>
    <item>Payroll</item>
    <father>administration</father>
    <name>CEO</name>
    <total>25000</total>
    <week1>21000</week1>
    <week2>1000</week2>
    <week3>1000</week3>
    <week4>1000</week4>
    <week5>1000</week5>
    <approval>Not Approved</approval>
  </concept>
  <concept>
    <item>Payroll</item>
    <father>administration</father>
    <name>Cleaning Lady</name>
    <total>25000</total>
    <week1>21000</week1>
    <week2>1000</week2>
    <week3>1000</week3>
    <week4>1000</week4>
    <week5>1000</week5>
    <approval>Approved</approval>
  </concept>
 </plant>

次のようなクエリを作成します。

select xml from table

結果はデー​​タセットに保存されます。

次に、データセットを介して XML 文字列を単純な文字列オブジェクトに読み込みます。

stringXML = dset.tables(0).rows(0)(0).tostring

これが問題の始まりです。文字列リーダーを使用して XML ファイルからデータセットを読み込む方法を知っています。

したがって、私の通常のコードは次のようになります。

  Dim dset2 As New DataSet
  Dim reader As StringReader
  reader = New StringReader(xml) 'xml contains the xml string already loaded
  dset2.ReadXml(reader)

私がデバッグしているとき、リーダー (stringReader) は何もロードしません!、同じプログラミング方法論を持つ他のプロジェクトがあり、完全に機能しましたが、今は機能しません。

文字列リーダーは何も返しません。インスペクションを追加すると (vs 2005)、同じです。var リーダーには何もありません。

私は何かをスキップしていますか?それともただの疲れ...

4

1 に答える 1

0

正確な問題が何であるかはわかりませんが、確認すべき点がいくつかあります。

1- 文字列を取得する方法は問題ではありません...注目すべき重要なことは、この行が実行されたときの「xml」変数の値です。

reader = New StringReader(xml) 'xml には、すでにロードされている xml 文字列が含まれています

xml 変数には期待値が含まれていますか? そうでない場合は、データベースから値を保存および取得する方法を確認してください。

2-ものをロードしないのはstringReaderですか、それとも期待値をロードしないのはdset2.ReadXmlですか?

3-「文字列リーダーが何も返さない」とどのように判断しましたか? あなたの場合、リーダーは関数ではなくオブジェクトです... null(またはVBでは何もない)にすることができますが、何も返すことはできません。ロードされたものを調べるために、reader.ReadToEnd を試しましたか?

于 2011-04-20T01:43:56.627 に答える