XmlNode


Object Hierarchy:

Rest.XmlNode Rest.XmlNode Rest.XmlNode

Description:

[ CCode ( ref_function = "rest_xml_node_ref" , type_id = "rest_xml_node_get_type ()" , unref_function = "rest_xml_node_unref" ) ]
[ Compact ]
public class XmlNode

Example: XML-Dump:

public string generate_attrs_output (HashTable<string, string> attrs) {
StringBuilder builder = new StringBuilder ();
builder.append ("{ ");

builder.append ("}");
attrs.foreach ((key, value) => {
builder.append (key);
builder.append_c (':');
builder.append (value);
});

return (owned) builder.str;
}

void xml_node_output (Rest.XmlNode node, int depth) {
do {
// node.attrs is bound as <void*, void*> (Wed Aug 28, 2013)
string attrs_output = generate_attrs_output ((HashTable<string, string>) node.attrs);
print ("%*s[%s, %s, %s]\n",
depth, "", node.name, (node.content != null)? node.content : "NULL",
attrs_output);

// Bound as <void*, void*> (Wed Aug 28, 2013)
((HashTable<string, Rest.XmlNode>) node.children).foreach ((name, child) => {
print ("%*s%s - >\n", depth, "", child.name);
xml_node_output (child, depth + 4);
});
} while ((node = node.next) != null);
}

public static int main (string[] args) {
if (args.length != 2) {
stderr.puts ("$ dump-xml <FILENAME>\n");
return 1;
}

string data;
size_t length;

try {
FileUtils.get_contents (args[1], out data, out length);
} catch (FileError e) {
stderr.printf ("%s\n", e.message);
return 1;
}

Rest.XmlParser parser = new Rest.XmlParser ();
Rest.XmlNode node = parser.parse_from_data (data, length);
if (node == null) {
print ("Cannot parse document\n");
return -1;
}

xml_node_output (node, 0);
return 0;
}

valac --pkg rest-0.7 dump-xml.vala


Namespace: Rest
Package: rest-0.7

Content:

Methods:

Fields: