StringReader没有“读取”给定的字符串对象

时间:2011-04-19 23:50:35

标签: xml vb.net stringreader

我在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 个答案:

答案 0 :(得分:0)

我无法确定究竟是什么问题,但这里有一些你应该检查的事情。

1-你获得字符串的方式并不重要......重要的是要看一下,当你调用这一行时,它是“xml”变量的值:

  

reader = New StringReader(xml)'xml包含已加载的xml字符串

xml变量是否包含预期值?如果没有,则检查存储和检索数据库中的值的方式。

2 - 是不是没有加载东西的stringReader,还是没有加载期望值的dset2.ReadXml?

3-你是如何确定“String reader什么都不返回”的?在你的情况下,reader是一个对象,而不是一个函数......它可以是null(或VB中没有任何东西),但它不能返回任何内容。你有没有试过reader.ReadToEnd找出加载的内容?