【发布时间】:2016-02-13 14:09:30
【问题描述】:
我想读取两个同级元素,请建议我在 C# 中使用 XmlReader 的适当方法
这是我的 XML
<loginReturn>
<canumber>100556369</canumber>
<emailid>bhushan.patil@servpro.in</emailid>
<firstname>abc</firstname>
<lastname>abc</lastname>
<masterca/>
<message>Login succesful !</message>
<meternumber>8683169</meternumber>
<mobilenumber>1111111111</mobilenumber>
<status>1</status>
<subca/>
<username>abcbbb</username>
</loginReturn>
我想先阅读“状态”,如果它不等于“1”,然后阅读“消息”...
这是我的代码:
using (XmlReader reader = XmlReader.Create(new StringReader(xmlString)))
{
string msg = Strings.SUCCESS;
reader.ReadToFollowing("status");
var x = reader.ReadElementContentAsInt();
if (x != 1)
{
reader.ReadToFollowing("message");
msg = reader.ReadElementContentAsString();
}
return msg;
}
【问题讨论】:
-
我认为最好先阅读所有内容,然后在下一步进行一些逻辑工作并处理您的数据。
-
不要假设排序(即使它似乎是固定的)。只需阅读 message 和 status (使用 ReadToNextSibling() 跳过你不需要的内容),当你拥有它们然后执行你的逻辑(是的,它会巧妙地命中性能,但除非您必须处理 10M 节点 IMO,否则您不会注意到任何差异)。
-
with 'reader.ReadToFollowing("status")' 光标移动到 "status" 节点.. 之后 reader 只指向 "status" 元素内.. 我怎么能读取两个元素并存储在 var.. 请用代码建议
-
如果我的回答可以帮助您解决您的问题,请您投票并将其标记为已接受,谢谢!
-
这似乎仍然是一个悬而未决的问题...您需要进一步的帮助吗?
标签: xml xml-parsing xmlreader