我有一个这样的XML文件:
<key>businessAddress</key>
<string>Moka</string>
<key>businessName</key>
<string>Moka address</string>
<key>Id</key>
<string>39</string>
<key>Cat</key>
<string>216</string>
<key>deals</key>如果键是Id,我想读取下一个<string>值
所以我所做的是:
XmlTextReader reader = new XmlTextReader(file);
while (reader.Read())
{
if (reader.Value.Equals("Id"))
{
reader.MoveToNextAttribute
}
}但我没有成功。
谢谢你的帮助
发布于 2016-03-06 16:40:13
您可以使用布尔标志来指示是否应该读取下一个元素的值:
bool shouldReadId = false;
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Text && shouldReadId)
{
Console.WriteLine(reader.Value); // will print 39
shouldReadId = false;
}
if (reader.Value.Equals("Id"))
{
// indicate that we should read the value of the next element
// in the next iteration
shouldReadId = true;
}
}发布于 2016-03-06 16:47:36
您的XML看起来与薄片相似得令人怀疑。听起来你需要一个折叠式图书馆。而不是重新发明车轮,只需使用NuGet上可用的任何一个库。它们将解决解析XML文件的问题。
如果您坚持手动解析XML,那么就不要使用低级的SAX类,而只需使用DOM。使用XDocument要容易得多。参见@EugenePodskal's解决方案。
https://stackoverflow.com/questions/35829119
复制相似问题