From ef0ed92f1b2213f95127fe534aa9cd19ca2f49d8 Mon Sep 17 00:00:00 2001 From: zhengchun Date: Wed, 3 Apr 2024 02:00:21 +0800 Subject: [PATCH] remove `books.xml` and update docs example --- books.xml | 121 ---------------------------------------------------- doc_test.go | 64 +++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 121 deletions(-) delete mode 100644 books.xml create mode 100644 doc_test.go diff --git a/books.xml b/books.xml deleted file mode 100644 index 85a74b5..0000000 --- a/books.xml +++ /dev/null @@ -1,121 +0,0 @@ - - - - - Gambardella, Matthew - XML Developer's Guide - Computer - 44.95 - 2000-10-01 - An in-depth look at creating applications - with XML. - - - Ralls, Kim - Midnight Rain - Fantasy - 5.95 - 2000-12-16 - A former architect battles corporate zombies, - an evil sorceress, and her own childhood to become queen - of the world. - - - Corets, Eva - Maeve Ascendant - Fantasy - 5.95 - 2000-11-17 - After the collapse of a nanotechnology - society in England, the young survivors lay the - foundation for a new society. - - - Corets, Eva - Oberon's Legacy - Fantasy - 5.95 - 2001-03-10 - In post-apocalypse England, the mysterious - agent known only as Oberon helps to create a new life - for the inhabitants of London. Sequel to Maeve - Ascendant. - - - Corets, Eva - The Sundered Grail - Fantasy - 5.95 - 2001-09-10 - The two daughters of Maeve, half-sisters, - battle one another for control of England. Sequel to - Oberon's Legacy. - - - Randall, Cynthia - Lover Birds - Romance - 4.95 - 2000-09-02 - When Carla meets Paul at an ornithology - conference, tempers fly as feathers get ruffled. - - - Thurman, Paula - Splish Splash - Romance - 4.95 - 2000-11-02 - A deep sea diver finds true love twenty - thousand leagues beneath the sea. - - - Knorr, Stefan - Creepy Crawlies - Horror - 4.95 - 2000-12-06 - An anthology of horror stories about roaches, - centipedes, scorpions and other insects. - - - Kress, Peter - Paradox Lost - Science Fiction - 6.95 - 2000-11-02 - After an inadvertant trip through a Heisenberg - Uncertainty Device, James Salway discovers the problems - of being quantum. - - - O'Brien, Tim - Microsoft .NET: The Programming Bible - Computer - 36.95 - 2000-12-09 - Microsoft's .NET initiative is explored in - detail in this deep programmer's reference. - - - O'Brien, Tim - MSXML3: A Comprehensive Guide - Computer - 36.95 - 2000-12-01 - The Microsoft MSXML3 parser is covered in - detail, with attention to XML DOM interfaces, XSLT processing, - SAX and more. - - - Galos, Mike - Visual Studio 7: A Comprehensive Guide - Computer - 49.95 - 2001-04-16 - Microsoft Visual Studio 7 is explored in depth, - looking at how Visual Basic, Visual C++, C#, and ASP+ are - integrated into a comprehensive development - environment. - - \ No newline at end of file diff --git a/doc_test.go b/doc_test.go new file mode 100644 index 0000000..ce1e903 --- /dev/null +++ b/doc_test.go @@ -0,0 +1,64 @@ +package xmlquery_test + +import ( + "fmt" + "strings" + + "github.com/antchfx/xmlquery" + "github.com/antchfx/xpath" +) + +func Example() { + // XPATH syntax and functions see https://github.com/antchfx/xpath + s := ` + + + Gambardella, Matthew + XML Developer's Guide + Computer + 44.95 + 2000-10-01 + + + Ralls, Kim + Midnight Rain + Fantasy + 5.95 + 2000-12-16 + + + Corets, Eva + Maeve Ascendant + Fantasy + 5.95 + 2000-11-17 + + ` + + doc, err := xmlquery.Parse(strings.NewReader(s)) + if err != nil { + panic(err) + } + // Quick query all books. + books := xmlquery.Find(doc, `/bookstore/book`) + for _, n := range books { + fmt.Println(n) + } + + // Find all books with price rather than 10. + books = xmlquery.Find(doc, `//book[price < 10]`) + fmt.Println(len(books)) + + // Find books with @id=bk102 or @id=bk101 + books = xmlquery.Find(doc, `//book[@id = "bk102" or @id = "bk101"]`) + fmt.Println(len(books)) + + // Find books by author: Corets, Eva + book := xmlquery.FindOne(doc, `//book[author = "Corets, Eva"]`) + fmt.Println(book.SelectElement("title").InnerText()) // > Output: Maeve Ascendant + + // Calculate the total prices of all books + nav := xmlquery.CreateXPathNavigator(doc) + prices := xpath.MustCompile(`sum(//book/price)`).Evaluate(nav).(float64) + fmt.Println(prices) // > Output: 56.85 +}