Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
14
Task/XML-DOM-serialization/Pike/xml-dom-serialization-1.pike
Normal file
14
Task/XML-DOM-serialization/Pike/xml-dom-serialization-1.pike
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
object dom = Parser.XML.Tree.SimpleRootNode();
|
||||
dom->add_child(Parser.XML.Tree.SimpleNode(Parser.XML.Tree.XML_HEADER, "", ([]), ""));
|
||||
object node = Parser.XML.Tree.SimpleNode(Parser.XML.Tree.XML_ELEMENT, "root", ([]), "");
|
||||
dom->add_child(node);
|
||||
|
||||
object subnode = Parser.XML.Tree.SimpleNode(Parser.XML.Tree.XML_ELEMENT, "element", ([]), "");
|
||||
node->add_child(subnode);
|
||||
|
||||
node = subnode;
|
||||
subnode = Parser.XML.Tree.SimpleNode(Parser.XML.Tree.XML_TEXT, "", ([]), "Some text here");
|
||||
node->add_child(subnode);
|
||||
|
||||
dom->render_xml();
|
||||
Result: "<?xml version='1.0' encoding='utf-8'?><root><element>Some text here</element></root>"
|
||||
27
Task/XML-DOM-serialization/Pike/xml-dom-serialization-2.pike
Normal file
27
Task/XML-DOM-serialization/Pike/xml-dom-serialization-2.pike
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
object make_xml_node(array|string in, void|int level)
|
||||
{
|
||||
level++;
|
||||
if (stringp(in))
|
||||
return Parser.XML.Tree.SimpleNode(Parser.XML.Tree.XML_TEXT, "", ([]), in);
|
||||
else
|
||||
{
|
||||
object node = Parser.XML.Tree.SimpleNode(Parser.XML.Tree.XML_ELEMENT, in[0], in[1], "");
|
||||
foreach(in[2..];; array|string child)
|
||||
{
|
||||
node->add_child(make_xml_node(child, level));
|
||||
}
|
||||
return node;
|
||||
}
|
||||
}
|
||||
|
||||
object make_xml_tree(array input)
|
||||
{
|
||||
object dom = Parser.XML.Tree.SimpleRootNode();
|
||||
dom->add_child(Parser.XML.Tree.SimpleNode(Parser.XML.Tree.XML_HEADER, "", ([]), ""));
|
||||
dom->add_child(make_xml_node(input));
|
||||
return dom;
|
||||
}
|
||||
|
||||
array input = ({ "root", ([]), ({ "element", ([]), "Some text here" }) });
|
||||
make_xml_tree(input)->render_xml();
|
||||
Result: "<?xml version='1.0' encoding='utf-8'?><root><element>Some text here</element></root>"
|
||||
32
Task/XML-DOM-serialization/Pike/xml-dom-serialization-3.pike
Normal file
32
Task/XML-DOM-serialization/Pike/xml-dom-serialization-3.pike
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
object indent_xml(object parent, void|int indent_text, void|int level)
|
||||
{
|
||||
int subnodes = false;
|
||||
foreach(parent->get_children();; object child)
|
||||
{
|
||||
if (child->get_node_type() == Parser.XML.Tree.XML_ELEMENT ||
|
||||
(child->get_node_type() == Parser.XML.Tree.XML_TEXT && indent_text))
|
||||
{
|
||||
subnodes = true;
|
||||
parent->add_child_before(Parser.XML.Tree.SimpleNode(Parser.XML.Tree.XML_TEXT, "", ([]), "\r\n"+" "*level), child);
|
||||
indent_xml(child, indent_text, level+1);
|
||||
}
|
||||
}
|
||||
if (subnodes && level)
|
||||
parent->add_child(Parser.XML.Tree.SimpleNode(Parser.XML.Tree.XML_TEXT, "", ([]), "\r\n"+" "*(level-1)));
|
||||
return parent;
|
||||
}
|
||||
|
||||
|
||||
indent_xml(make_xml_tree(input))->render_xml();
|
||||
Result: "<?xml version='1.0' encoding='utf-8'?>\r\n"
|
||||
"<root>\r\n"
|
||||
" <element>Some text here</element>\r\n"
|
||||
"</root>"
|
||||
|
||||
indent_xml(make_xml_tree(input), 1)->render_xml();
|
||||
Result: "<?xml version='1.0' encoding='utf-8'?>\r\n"
|
||||
"<root>\r\n"
|
||||
" <element>\r\n"
|
||||
" Some text here\r\n"
|
||||
" </element>\r\n"
|
||||
"</root>"
|
||||
Loading…
Add table
Add a link
Reference in a new issue