我在mysql数据库中有一个表,在那里我存储了许多XML字符串。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阅读器没有任何东西。
我是不是漏掉了什么?或者只是累了…
我不知道确切的问题是什么,但这里有几件事你应该检查。
1-你得到字符串的方式并不重要…重要的是,它是"xml"变量的值,当你调用这一行执行时:
reader = New StringReader(xml)'xml包含已加载的xml字符串
xml变量是否包含期望的值?如果没有,则检查从数据库中存储和检索值的方式。
2-它是stringReader不加载一个东西,还是它是dset2。ReadXml不加载预期的值?
3-你如何确定"字符串读取器不返回任何东西"?在你的例子中,reader是一个对象,而不是一个函数…它可以为空(或者在VB中为空),但不能返回任何值。你试过吗?ReadToEnd来找出加载了什么?