2012-05-01 57 views
1

如何將XML文件用作數據庫並僅對其執行一些基本的SELECT命令!
例如:從file.xml選擇作者,其中標題=「MyTitle」使用XML文件作爲數據庫

<?xml version="1.0"?> 
<catalog> 
<book id="bk101"> 
    <author>Gambardella, Matthew</author> 
    <title>XML Developer's Guide</title> 
</book> 
<book id="bk102"> 
    <author>Ralls, Kim</author> 
    <title>Midnight Rain</title> 
</book> 
</catalog> 

我從來沒有使用XML文件(DB)的工作這麼沒有代碼放在這裏,但希望有人有一些解決方案

+1

你有什麼選擇探索?您的研究有哪些? – Oded

回答

1

您可以查看XPath。 System.XML.XmlDocument.SelectNodes方法允許您通過XPath選擇匹配的節點。它不是SQL,但它是查找XML文檔中節點的常用方法。以下示例使用XPath檢索標題爲「午夜雨」的所有書籍的作者。

Dim document As XmlDocument = New XmlDocument() 
    document.Load("file.xml") 
    Dim matches As XmlNodeList = document.SelectNodes("/catalog/book[title = 'Midnight Rain']/author") 
    For Each node As XmlNode In matches 
     'Do work 
    Next 
+0

如果.Net 3.5或更高版本,XPath應該用LINQ to XML替換。 – IAbstract

+1

:)我從來都不是LINQ的忠實粉絲,但對每個人都是。 XPath是一個用於許多工具和語言的開放標準,所以無論如何,學習都很有用。 –

+0

我與@SteveDog在這一個... LINQ有時只是矯枉過正。 – hsanders

2

我不相信你可以簡單地使用SQL來對付XML,而不是沒有很多工作(一個可以使用XML解析器轉換爲XML結構的SQL解析器)。

您可以得到的最接近的結果是使用LINQ to XML與XDocument類和System.Xml.Linq名稱空間。

+0

有一點代碼將高度讚賞LINQ to XML :) – Sourav

+0

@Sourav:您可以在MSDN獲取一些示例:http://msdn.microsoft.com/en-us/library/system.xml.linq。 xdocument(v = vs.100).aspx – IAbstract