如何查询XML数据
XML通常用来保存结构化的数据, 如果数据量很大, 就有了查询的需求. 这时XML可以看作是一个类似关系数据库的东东.
查询XML,目前有几种方案:
1.XPath
可以参看 http://www.w3.org/TR/xpath, 用来查询获取XML的部分数据.
一些例子:
http://support.microsoft.com/kb/308333
http://www.codeproject.com/KB/cpp/myXPath.aspx
2. XSLT
虽然XSLT主要用于文档的转换,但它也可以用来查询。
http://www.idealliance.org/proceedings/xtech05/papers/02-03-01/
http://www.ibm.com/developerworks/xml/library/x-wxxm34.html
3. XQuery
XQuery对于XML, 就好比SQL与关系数据库的关系.
using (XmlWriter writer = XmlWriter.Create(“output.xml “))
{
XQueryCommand xq = new XQueryCommand();
string query =
“<bookstore>” +
“{ for $s in /bookstore/book ” +
“where $s/@genre=’autobiography’ ” +
“return $s/title }” +
“</bookstore>”;
xq.Compile(query);
xq.Execute(“books.xml”, new XmlUrlResolver(), writer);
}
4. LINQ To XML
Anders Hejlsberg在VS2008 .Net 3.5中搞出来的新东东
http://msdn2.microsoft.com/en-us/library/bb308960.aspx#xlinqoverview_topic3
http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx
XSLT, XPath的最新版本都是2.0, 貌似微软不太喜欢这辆,所以当前.Net只支持XQuery 1.0
本文由IT Farmer的博客创作,欢迎转载并保留对本博的链接。 Tags:.Net,linq,query,xml,xpath,xquery,xslt