从 <...> 解析 xml 文件到<.../>
问题是
我有具有这种结构的 xml 文件
......................
<current_conditions>
<condition data="partly cloudy"/>
<temp_f data="2"/>
<temp_c data="-17"/>
<humidity data="Huminidy: 66 %"/>
<icon data="/ig/images/weather/partly_cloudy.gif"/>
<wind_condition data="Wind: С, 2 м/с"/>
</current_conditions>
<forecast_conditions>
<day_of_week data=""/>
<low data="-23"/>
<high data="-14"/>
<icon data="/ig/images/weather/mostly_sunny.gif"/>
<condition data="Mostly sunny"/>
</forecast_conditions>
.....................
,我像这样解析它
while (r.Read())
{
if (r.NodeType == XmlNodeType.Element)
{
if (r.Name == "current_conditions")
{
string temp = "";
while (r.Read() && r.Name!="forecast_conditions")//I've addee this condition because it parse all nodes after "current conditions"
{
if (Current_Condtions.Contains(r.Name))
{
temp += r.GetAttribute("data");
temp += "\n";
}
}
Console.WriteLine(temp);
}
}
}
,我添加了条件,但它仍然读取文件到最后,但我只想从
解析到 然后停止读取 xml 文件。
怎么做呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
最简单的方法是在获取所需数据后添加
break;
语句。更干净的方法是使用
ReadSubtree< /code> 方法。
当您位于 current_conditions 节点时,使用它来创建新的读取器。然后它只会读取该节点及其子节点。
像这样的东西
The easiest way is to add a
break;
statement after you get the data you need.A cleaner way would be to use the
ReadSubtree
method. Use it to create a new reader once you're on the current_conditions node. Then it will only read that node and its children.Something like
在完成所需操作后,您需要一个
break
语句。you need a
break
statement at the point where you've done what you wanted.尝试使用innerXML 属性。
Try using the innerXML attribute.