如何查询XML数据

XML通常用来保存结构化的数据, 如果数据量很大, 就有了查询的需求.   这时XML可以看作是一个类似关系数据库的东东.vs.gif

查询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:,,,,,,

Leave a Reply