我在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阅读器什么都没有。
我跳过什么东西?或者只是累了......
答案 0 :(得分:0)
我无法确定究竟是什么问题,但这里有一些你应该检查的事情。
1-你获得字符串的方式并不重要......重要的是要看一下,当你调用这一行时,它是“xml”变量的值:
reader = New StringReader(xml)'xml包含已加载的xml字符串
xml变量是否包含预期值?如果没有,则检查存储和检索数据库中的值的方式。
2 - 是不是没有加载东西的stringReader,还是没有加载期望值的dset2.ReadXml?
3-你是如何确定“String reader什么都不返回”的?在你的情况下,reader是一个对象,而不是一个函数......它可以是null(或VB中没有任何东西),但它不能返回任何内容。你有没有试过reader.ReadToEnd找出加载的内容?