我想使用dataset.readxml从xml文件中检索一些数据。但是,我的xml格式格式不好,一部分用于数据集,另一部分用于其他东西。所以,我如何检索数据集part.i我用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>
问候
冲
答案 0 :(得分:1)
由于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);
数据包含数据集部分
答案 1 :(得分:1)
有些事情吗? (其中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"];
答案 2 :(得分:1)
你可以使用这样的东西:
XmlTextReader xmlreader = new XmlTextReader(strfilename);
xmlreader.ReadToFollowing("sometext");
xmlreader.ReadToDescendant("textundersometext");