使用DataSet.ReadXML的一些问题

发布于 2024-10-11 02:43:31 字数 986 浏览 2 评论 0原文

我想使用 dataset.readxml 从 xml 文件中检索一些数据。但是,我的 xml 格式不是很好的格式,一部分用于数据集,另一部分用于其他内容。所以,我如何检索数据集部分。我正在开发c#.net 2008.xml 文件格式如下。

<Object type="Sample">
  <Object type="Tool">
    <Property name="Text">Prescription1</Property>
    <Property name="Name">Prescription1</Property>        
  <Object type="TextBox">    
    <Property name="Text">Singapore</Property>
    <Property name="Name">TextBox2</Property>    
  </Object>      
  <DataSet>                          //This Part
    <TableOne>      
      <ItemID>001</ItemID>
      <ItemName>Item001</ItemName>
      <Price>100</Price>      
    </TableOne>
    <TableOne>
      <ItemID>002</ItemID>
      <ItemName>Item002</ItemName>
      <Price>200</Price>      
    </TableOne>
  </DataSet>
</Object>

问候

i want to use dataset.readxml for retrieve some data from xml file.But,my xml format is not well format,one part is for dataset and another part for other things.so,how i retrieve the dataset part.i am developing in c#.net 2008.xml file format is like below.

<Object type="Sample">
  <Object type="Tool">
    <Property name="Text">Prescription1</Property>
    <Property name="Name">Prescription1</Property>        
  <Object type="TextBox">    
    <Property name="Text">Singapore</Property>
    <Property name="Name">TextBox2</Property>    
  </Object>      
  <DataSet>                          //This Part
    <TableOne>      
      <ItemID>001</ItemID>
      <ItemName>Item001</ItemName>
      <Price>100</Price>      
    </TableOne>
    <TableOne>
      <ItemID>002</ItemID>
      <ItemName>Item002</ItemName>
      <Price>200</Price>      
    </TableOne>
  </DataSet>
</Object>

regards

Chong

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

也只是曾经 2024-10-18 02:43:31

由于 xml 的格式不好,因此无法使用 DOM 解析器。
进行字符串操作

 string fileContent =  System.IO.File.ReadAllText(@"sample.xml");
        int firstIndex =  fileContent.IndexOf("<DataSet>", 0);
        int lastIndex = fileContent.IndexOf("</DataSet>", firstIndex);
        string data = fileContent.Substring(firstIndex + "<DataSet>".Length, lastIndex - firstIndex - "<DataSet>".Length);  

因此您可以对数据集部分的数据内容

as xml is not well format it is not possible to use the DOM parser.
So you can the string manipulation

 string fileContent =  System.IO.File.ReadAllText(@"sample.xml");
        int firstIndex =  fileContent.IndexOf("<DataSet>", 0);
        int lastIndex = fileContent.IndexOf("</DataSet>", firstIndex);
        string data = fileContent.Substring(firstIndex + "<DataSet>".Length, lastIndex - firstIndex - "<DataSet>".Length);  

Data contents the your dataset part

土豪 2024-10-18 02:43:31

诸如此类的事情? (其中 xmlTest 是包含 XML 的字符串)

        XmlDocument doc = new XmlDocument();
        // Get the Xml
        doc.LoadXml(xmlTest);
        // Get your DataSet Node
        XmlNode node = doc.SelectSingleNode("Object/DataSet");
        DataSet ds = new DataSet();
        // Read your node
        ds.ReadXml(new StringReader(node.OuterXml));
        // Read your daat
        string value = ds.Tables["TableOne"].Rows[0]["ItemID"];

Some thing like that ? (where xmlTest is the string containing your XML)

        XmlDocument doc = new XmlDocument();
        // Get the Xml
        doc.LoadXml(xmlTest);
        // Get your DataSet Node
        XmlNode node = doc.SelectSingleNode("Object/DataSet");
        DataSet ds = new DataSet();
        // Read your node
        ds.ReadXml(new StringReader(node.OuterXml));
        // Read your daat
        string value = ds.Tables["TableOne"].Rows[0]["ItemID"];
独守阴晴ぅ圆缺 2024-10-18 02:43:31

你可以使用这样的东西:

XmlTextReader xmlreader = new XmlTextReader(strfilename);
xmlreader.ReadToFollowing("sometext");
xmlreader.ReadToDescendant("textundersometext");

You can use some thing like this:

XmlTextReader xmlreader = new XmlTextReader(strfilename);
xmlreader.ReadToFollowing("sometext");
xmlreader.ReadToDescendant("textundersometext");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文