题
我想使用dataset.readxml用于检索XML file.But一些数据,我的XML格式是没有得到很好的格式,一个部分是数据集,而另一部分用于其他things.so,我如何检索数据集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>
问候
冲
解决方案
如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);
数据内容的数据集部分
其他提示
有些东西一样吗? (其中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"];
您可以使用这样的:
XmlTextReader xmlreader = new XmlTextReader(strfilename);
xmlreader.ReadToFollowing("sometext");
xmlreader.ReadToDescendant("textundersometext");
不隶属于 StackOverflow