XML取节点

VeRooney 2012-02-03 10:15:12
<DiscountInfo>
<Number>1</Number>
<FlightNO>ZH9683</FlightNO>
<Class>Z</Class>
<Discount>55</Discount>
<Nums>A</Nums>
<Price>380</Price>
<ClassType>常规</ClassType>
<PolicyID />
<IsPAT>0</IsPAT>
<PATCmd />
<Area />
<IsChild>0</IsChild>
</DiscountInfo>
<DiscountInfo>
<Number>1</Number>
<FlightNO>ZH9683</FlightNO>
<Class>G</Class>
<Discount>51</Discount>
<Nums>A</Nums>
<Price>350</Price>
<ClassType>常规</ClassType>
<PolicyID />
<IsPAT>0</IsPAT>
<PATCmd />
<Area />
<IsChild>0</IsChild>
</DiscountInfo>
<DiscountInfo>
<Number>2</Number>
<FlightNO>ZH9683</FlightNO>
<Class>V</Class>
<Discount>45</Discount>
<Nums>A</Nums>
<Price>310</Price>
<ClassType>常规</ClassType>
<PolicyID />
<IsPAT>0</IsPAT>
<PATCmd />
<Area />
<IsChild>0</IsChild>
</DiscountInfo>

我想取
<DiscountInfo>
<Number>1</Number>
<FlightNO>ZH9683</FlightNO>
<Class>Z</Class>
<Discount>55</Discount>
<Nums>A</Nums>
<Price>380</Price>
<ClassType>常规</ClassType>
<PolicyID />
<IsPAT>0</IsPAT>
<PATCmd />
<Area />
<IsChild>0</IsChild>
</DiscountInfo>
<DiscountInfo>
<Number>1</Number>
<FlightNO>ZH9683</FlightNO>
<Class>G</Class>
<Discount>51</Discount>
<Nums>A</Nums>
<Price>350</Price>
<ClassType>常规</ClassType>
<PolicyID />
<IsPAT>0</IsPAT>
<PATCmd />
<Area />
<IsChild>0</IsChild>
</DiscountInfo>
用这个标示怎么判断?
...全文
120 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qldsrx 2012-02-03
  • 打赏
  • 举报
回复
你这个xml是不能直接创建xml对象的,必须有跟节点。
            XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(@"<Root>
<DiscountInfo>
<Number>1</Number>
<FlightNO>ZH9683</FlightNO>
<Class>Z</Class>
<Discount>55</Discount>
<Nums>A</Nums>
<Price>380</Price>
<ClassType>常规</ClassType>
<PolicyID />
<IsPAT>0</IsPAT>
<PATCmd />
<Area />
<IsChild>0</IsChild>
</DiscountInfo>
<DiscountInfo>
<Number>1</Number>
<FlightNO>ZH9683</FlightNO>
<Class>G</Class>
<Discount>51</Discount>
<Nums>A</Nums>
<Price>350</Price>
<ClassType>常规</ClassType>
<PolicyID />
<IsPAT>0</IsPAT>
<PATCmd />
<Area />
<IsChild>0</IsChild>
</DiscountInfo>
<DiscountInfo>
<Number>2</Number>
<FlightNO>ZH9683</FlightNO>
<Class>V</Class>
<Discount>45</Discount>
<Nums>A</Nums>
<Price>310</Price>
<ClassType>常规</ClassType>
<PolicyID />
<IsPAT>0</IsPAT>
<PATCmd />
<Area />
<IsChild>0</IsChild>
</DiscountInfo>
</Root>");
XmlNodeList nodes = xmlDoc.SelectNodes("//DiscountInfo[./Number = '1']");
foreach (XmlNode node in nodes)
{
MessageBox.Show(node.InnerXml);
}
liym15 2012-02-03
  • 打赏
  • 举报
回复
XmlDocument doc = new XmlDocument();
doc.LoadXml("XML文件");
pram1 = doc.SelectSingleNode("/Number");
孙明_ 2012-02-03
  • 打赏
  • 举报
回复
支持楼上
franklions 2012-02-03
  • 打赏
  • 举报
回复
为什么不将数据读到table 列表之类的里面去,然后再通过条件查找,筛选要比处理这个XML好吧。
samsone 2012-02-03
  • 打赏
  • 举报
回复
用这个<Number>1</Number>去判断
qldsrx 2012-02-03
  • 打赏
  • 举报
回复
用Xpath直接找Price节点不就好了吗?
XmlNodeList nodes = xmlDoc.SelectNodes("//DiscountInfo[./Number = '1']/Price");

再对这个nodes遍历取最小值即可。
VeRooney 2012-02-03
  • 打赏
  • 举报
回复
别沉呀
VeRooney 2012-02-03
  • 打赏
  • 举报
回复
DiscountInfo不同<Number>1</Number>节点下最小Price、
VeRooney 2012-02-03
  • 打赏
  • 举报
回复
其实 我就是想取DiscountInfo不同<Number>1</Number>节点下Price、
我想先取所有<Number>1</Number> 的字符串
str //这里不知道怎么取了
然后
string a = XDocument.Parse(str).Descendants("DiscountInfo").OrderBy(x => Convert.ToInt32(x.Element("Price").Value)).First().ToString();
就可以了
jsyhello 2012-02-03
  • 打赏
  • 举报
回复
http://blog.csdn.net/jsyhello/article/details/6892670

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧