我想阅读两个兄弟姐妹的元素,请在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>
我想阅读&#34;状态&#34;首先,如果它不等于&#34; 1&#34;然后阅读&#34;消息&#34; ...
这是我的代码:
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;
}
答案 0 :(得分:1)
编辑:您的评论明确表示,XmlDocument在Xamarin中不可用。我没有Xamarin的经验,没有机会测试它。但是一个简短的研究将我带到XPathDocument
(创建一个XPathNavigator
),似乎在Xamarin中得到了支持。解决方案可能是这样的:
string msg="OK";
if(YourNavigator.Evaluate("/loginReturn/status/text()")!="1")
msg=YourNavigator.Evaluate("loginReturn/message/text()");
这是完全未经测试的&#34; air-code&#34; ...希望这有助于......
这是我之前使用XmlDocument的回答 - 很遗憾没有在Xamarin中工作:
string 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>";
XmlDocument xdoc= new XmlDocument();
xdoc.LoadXml(xml);
string msg="OK";
if(xdoc["loginReturn"]["status"].InnerText!="1")
msg=xdoc["loginReturn"]["message"].InnerText;