簡體   English   中英

C#和XML-搜索XML文件

[英]C# and XML - Searching an XML file

在XML文件中搜索某個關鍵字時遇到問題。

這是一個示例XML文件

<books>
    <book>
        <name>BookName</book>
        <price>BookPrice</price>
    </book>
</books>

我有一個GUI應用程序,用戶在其中輸入他們想要的書的一部分或全名,然后遍歷XML文件並找到正確的條目,並給出正確的結果。 問題是我不知道該怎么做。

我已經嘗試過使用XmlTextReader,但我不知道如何使用,任何幫助將不勝感激。

謝謝。

您可以使用LINQ to XML:

var xml = new XDocument(...);
var books = xml.Descendants("book");
var matches = books.Where(b => 
    b.Element("name").Value.IndexOf(str, StringComparison.CurrentCultureIgnoreCase) >= 0
);

為了使其更易於使用,您應該創建一個Book類來存儲數據。
然后你可以寫

List<Book> books = xml.Descendants("book")
                      .Select(x => new Book(
                        x.Element("name").Value,
                        (decimal)x.Element("price")
                   ).ToList();

然后,您可以針對Book對象編寫LINQ查詢。

如果這些是XML文件,則您創建的更多方法是使用System.Xml.Serialization.XmlSerializer保存,然后將XML文檔加載到Book類中,然后查詢您的類。

using System.Xml.Serialization;
using System.IO;

// Load the book from the file.
XmlSerializer serializer = new XmlSerializer(typeof(Book));
reader = new StreamReader(filePathName);
Book book = (Book)serializer.Deserialize(reader);
reader.Close();

if (book.Name.Contains(myQuery))
{
    // We have a match.
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM