This app provides monitoring and information features for the common freifunk user and the technical stuff of a freifunk community.
Code base is taken from a TUM Practical Course project and added here to see if Freifunk Altdorf can use it.
https://www.freifunk-altdorf.de
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.0 KiB
60 lines
2.0 KiB
|
|
// Designed to be run from Node.js - i.e. "node example.js" |
|
|
|
var XmlDocument = require('../lib/xmldoc').XmlDocument; |
|
|
|
// Demonstrate parsing an in-memory XML string |
|
var xmlString = '<suggestions><book title="Twilight"/><book title="Twister"/></suggestions>'; |
|
|
|
var suggestions = new XmlDocument(xmlString); |
|
|
|
// Demonstrate how toString() will pretty-print the XML for debugging |
|
console.log("Parsed: \n%s", suggestions); |
|
|
|
// Demonstrate a simple eachChild() loop, printing our book titles |
|
suggestions.eachChild(function(book) { |
|
console.log("Found book with title: '%s'", book.attr.title); |
|
console.log("==> The <book> tag started at position %s and the complete element ended at line %s, column %s, position %s.", book.startTagPosition, book.line, book.column, book.position); |
|
}); |
|
|
|
// Now load an XML file from disk and parse it |
|
var fs = require('fs'), |
|
path = require('path'); |
|
|
|
fs.readFile(path.join(__dirname, "test.xml"), 'utf8', function (err,data) { |
|
|
|
if (err) { |
|
return console.log(err); |
|
} |
|
|
|
// Parse the XML |
|
var results = new XmlDocument(data); |
|
|
|
// Demonstrate toString() with an option to abbreviate long strings and compress the output |
|
console.log("Parsed: \n%s", results.toString({trimmed:true, compressed:true})); |
|
|
|
// Pull out the <books> node |
|
var books = results.childNamed("books"); |
|
|
|
// Demonstrate firstChild/lastChild |
|
console.log("First book has ISBN '%s', last book has ISBN '%s'", books.firstChild.attr.isbn, books.lastChild.attr.isbn); |
|
|
|
// Print out the ISBNs |
|
books.eachChild(function (book) { |
|
console.log("Found book with ISBN '%s'", book.attr.isbn); |
|
}); |
|
|
|
// Look for all children with a certain node name |
|
var allBooks = books.childrenNamed("book"); |
|
|
|
// The result is an array of <book> XmlElement instances |
|
console.log("Found %s books.", allBooks.length); |
|
|
|
// Search for a particular book |
|
var twilight = books.childWithAttribute("isbn","478-2-23-765712-2"); |
|
|
|
// Result is a single XmlElement instance for <book> |
|
console.log("Title of book with given ISBN: '%s'", twilight.valueWithPath("title")); |
|
|
|
return null; |
|
}); |