C#读取XML文件的问题。

如何不通过循环,直接找到111。<a><b1><Account1>111</Account1><Product1>222</Product1><Price1>333</P... 如何不通过循环,直接找到111。
<a>
<b1>
<Account1>111</Account1>
<Product1>222</Product1>
<Price1>333</Price1>
</b1>
<b2>
<Account2>444</Account2>
<Product2>555</Product2>
<Price2>666</Price2>
</b2>
<b3>
<Account3>777</Account3>
<Product3>888</Product3>
<Price3>999</Price3>
</b3>
</a>
展开
 我来答
cand2008
2012-09-18
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
是不是找到节点?还是找值?
public static string GetNodeValue(string xml,string value)
{
string val = string.Empty;
StringReader strreder = new StringReader(xml);
XmlTextReader txt = new XmlTextReader(strreder);
XDocument xdoc = XDocument.Load(txt);
var query = from q in xdoc.Descendants("Account1")
where q.Value == value
select new
{
Value = q.Value
};
foreach (var q in query)
{
val = q.Value;
break;
}
strreder.Close();
txt.Close();
return val;
}
追问
只要过得"111"就可以。网上有通过循环得到的,有没有直接得到的方法?类似["xxxx"],get("xxx")什么的?
追答
地你就用这个方法就行了,返回空就代表没有这个值,有就是能过。
public static bool GetNodeValue(string xml,string value)
{

StringReader strreder = new StringReader(xml);
XmlTextReader txt = new XmlTextReader(strreder);
XDocument xdoc = XDocument.Load(txt);
var query = from q in xdoc.Descendants("Account1")
where q.Value == value
select new
{
Value = q.Value
};
bool val=query.Any();
strreder.Close();
txt.Close();
return val;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式