GXml example added.
This commit is contained in:
parent
023b85e2d4
commit
8916e333a7
|
@ -0,0 +1,100 @@
|
|||
using GXml;
|
||||
|
||||
void create_a_document () throws GLib.Error {
|
||||
string[] authors = { "John Green", "Jane Austen", "J.D. Salinger" };
|
||||
string[] titles = { "The Fault in Our Stars", "Pride & Prejudice", "Nine Stories" };
|
||||
|
||||
DomDocument doc = new GomDocument ();
|
||||
DomElement root = doc.create_element ("Bookshelf");
|
||||
doc.append_child (root);
|
||||
DomElement owner = doc.create_element ("Owner");
|
||||
root.append_child (owner);
|
||||
owner.set_attribute ("fullname", "John Green");
|
||||
|
||||
DomElement books = doc.create_element ("Books");
|
||||
root.append_child (books);
|
||||
|
||||
for (int i = 0; i < authors.length; i++) {
|
||||
DomElement book = doc.create_element ("Book");
|
||||
book.set_attribute ("author", authors[i]);
|
||||
book.set_attribute ("title", titles[i]);
|
||||
books.append_child (book);
|
||||
}
|
||||
|
||||
stdout.printf ("create_a_document:\n%s\n", (doc as GomDocument).write_string ());
|
||||
}
|
||||
|
||||
void create_a_document_from_a_string () throws GLib.Error {
|
||||
string xml;
|
||||
DomDocument doc;
|
||||
|
||||
xml = """<?xml version="1.0"?>
|
||||
<Bookshelf>
|
||||
<Owner fullname="John Green"/>
|
||||
<Books>
|
||||
<Book author="John Green" title="The Fault in Our Stars"/>
|
||||
<Book author="Jane Austen" title="Pride & Prejudice"/>
|
||||
<Book author="J.D. Salinger" title="Nine Stories"/>
|
||||
</Books>
|
||||
</Bookshelf>""";
|
||||
|
||||
doc = new GomDocument.from_string (xml);
|
||||
stdout.printf ("create_a_document_from_a_string:\n%s\n", (doc as GomDocument).write_string ());
|
||||
}
|
||||
|
||||
void create_a_document_from_a_file (string uri) throws GLib.Error {
|
||||
File f = File.new_for_uri (uri+"/bookshelf2.xml");
|
||||
stdout.printf (uri+"\n");
|
||||
DomDocument doc;
|
||||
|
||||
doc = new GomDocument.from_file (f);
|
||||
stdout.printf ("create_a_document_from_a_file:\n%s\n", (doc as GomDocument).write_string ());
|
||||
}
|
||||
|
||||
void create_a_document_from_a_path (string uri) throws GLib.Error {
|
||||
DomDocument doc;
|
||||
GLib.File f = GLib.File.new_for_uri (uri+"/bookshelf2.xml");
|
||||
|
||||
doc = new GomDocument.from_path (f.get_path ());
|
||||
stdout.printf ("create_a_document_from_a_path:\n%s\n", (doc as GomDocument).write_string ());
|
||||
}
|
||||
|
||||
void saving_a_document_to_a_path (string uri) throws GLib.Error {
|
||||
string xml;
|
||||
DomDocument doc;
|
||||
|
||||
xml = """<?xml version="1.0"?>
|
||||
<Bookshelf>
|
||||
<Owner fullname="John Green"/>
|
||||
<Books>
|
||||
<Book author="John Green" title="The Fault in Our Stars"/>
|
||||
<Book author="Jane Austen" title="Pride & Prejudice"/>
|
||||
<Book author="J.D. Salinger" title="Nine Stories"/>
|
||||
</Books>
|
||||
</Bookshelf>""";
|
||||
GLib.File f = GLib.File.new_for_uri (uri+"/bookshelf2.xml");
|
||||
stdout.printf (f.get_path ()+"\n");
|
||||
doc = new GomDocument.from_string (xml);
|
||||
if (f.query_exists ()) f.delete ();
|
||||
(doc as GomDocument).write_file (f);
|
||||
if (!f.query_exists ()) stdout.printf ("Can't save file bookshelf2.xml");
|
||||
}
|
||||
|
||||
int main (string[] args) {
|
||||
GLib.File ex = GLib.File.new_for_path (args[0]);
|
||||
GLib.File fex = ex.get_parent ();
|
||||
|
||||
try {
|
||||
create_a_document ();
|
||||
create_a_document_from_a_string ();
|
||||
saving_a_document_to_a_path (fex.get_uri ());
|
||||
create_a_document_from_a_path (fex.get_uri ());
|
||||
create_a_document_from_a_file (fex.get_uri ());
|
||||
GLib.File f = GLib.File.new_for_uri (fex.get_uri ()+"/bookshelf2.xml");
|
||||
if (f.query_exists ()) f.delete ();
|
||||
} catch (GLib.Error e) {
|
||||
warning ("Error: "+e.message);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
valac --pkg=gxml-0.16 example.vala && ./example
|
Loading…
Reference in New Issue