您的位置:首页 > 其它

xml流的一些操作总结

2010-02-07 11:37 309 查看
在实际开发中遇到一些读取远程XML文件,以下是总结的方法

1,以前用的笨方法

用HTTP_GET 方法读取远程XML数据,保存在本地,然后用XmlDocument加载,这种方法比较笨,让大家见笑了

2,也不是很好, 先读取HTTP_GET 方法读取远程XML数据 用StringReader 加载文件,最后用XmlTextReader 读取数据

StringBuilder str = new StringBuilder(256);
str.Append(Comment.doGetRequest("http://localhost:6350/alidz.do?cmd=querypricebypnr&pnr=X4H4B&bigpnr=0&air=ca&fmt=xml"));

StringReader strReader = new
StringReader(str.ToString());

XmlTextReader xml = new XmlTextReader(strReader);
while (xml.Read())
{
if (xml.NodeType == XmlNodeType.Text)
{
Response.Write(xml.Value);
}
}

3,用linq 读取 比较简单

a,用XDocument 读取

XDocument fromWeb = XDocument.Load("http://localhost:6350/alidz.do?cmd=querypricebypnr&pnr=X4H4B&bigpnr=0&air=ca&fmt=xml");
// XmlReader xmlr = XmlReader.Create(strReader);
//XElement xml1 = XElement.Load(xml);
// XElement xml1 = XElement.Parse(str.ToString());
var custs = from c in fromWeb.Elements("priceinfo")
select c;
// Execute the query
foreach (var customer in custs)
{
Response.Write(customer.Value);
}

b,用XElement 读取
XElement xml1 = XElement.Load("http://localhost:6350/alidz.do?cmd=querypricebypnr&pnr=X4H4B&bigpnr=0&air=ca&fmt=xml");
var custstest = from c in xml1.Elements()
select c; // Execute the query
foreach (var customer in custstest)
{
Response.Write(customer.Value);
}

备注 可以通过XDocument或XElement的静态方法Load载入xml文档,Load可以接受URI字符串,TextReader,XmlReader作为输入源。还可以使用静态方法Parse把字符串转变为待查询的xml文档。XDocument和XElement的区别在于查询时,XElment可以跳过根几点直接查询。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: