Size: 1053
Comment:
|
Size: 2694
Comment: added dom4j example
|
Deletions are marked like this. | Additions are marked like this. |
Line 16: | Line 16: |
* Something simple using 4dom | * Something simple using dom4j |
Line 45: | Line 45: |
=== dom4j === This example requires http://www.dom4j.org/ the example below was tested with v1.6.1 download it and put it in you classpath. This was posted to the Jython-users mailing list by Claude Falbriard Sep 14, 2007, This simply prints out a xml tree. change line 39 to a valid xml filename. {{{ import sys from org.dom4j.io import SAXReader def show_indent(level): return ' ' * level def show_node(node, level): """Display one node in the DOM tree. """ if node.getNodeType() == node.ELEMENT_NODE: name = node.getName() print '%sNode: %s' % (show_indent(level), name, ) attrs = node.attributes() for attr in attrs: aName = attr.getQualifiedName() aValue = attr.getValue() print ' %sAttr -- %s: %s' % (show_indent(level), aName,aValue,) if node.getName() == 'RefNum': val = node.getText() print '%stitle: "%s"' % (show_indent(level+1), val, ) elif node.getName() == 'link': val = node.getText() print '%slink : "%s"' % (show_indent(level+1), val, ) if node.getNodeType() == node.TEXT_NODE: print '**** text node' def show_tree(node, level): show_node(node, level) level1 = level + 1 children = node.elements() for child in children: show_tree(child, level1) def test(): print 'Version: %s' % (sys.version, ) reader = SAXReader() doc = reader.read('example.xml') root = doc.getRootElement() show_tree(root, 0) def main(): test() if __name__ == '__main__': main() }}} |
Jython examples using Java XML classes
Examples related to Java XML classes using Jython will be here.
List of pages in this category:
- Something simple using dom4j
- Something else simple Jdom
- Others ?
- and of course Java SDK
Element tree
Here is a simple example. info on element tree is at http://effbot.org/zone/element-index.htm
Download element tree from http://effbot.org/downloads/
{{{from elementtree import ElementTree as ET root = ET.Element("html") head = ET.SubElement(root, "head") title = ET.SubElement(head, "title") title.text = "Page Title" body = ET.SubElement(root, "body") body.set("bgcolor", "#ffffff") body.text = "Hello, World!" tree = ET.ElementTree(root) tree.write("page.xhtml") import sys tree.write(sys.stdout)
which produces: {{{ <html><head><title>Page Title</title></head><body bgcolor="#ffffff">Hello, World !</body></html>>>> }}}
dom4j
This example requires http://www.dom4j.org/ the example below was tested with v1.6.1 download it and put it in you classpath.
This was posted to the Jython-users mailing list by Claude Falbriard Sep 14, 2007,
This simply prints out a xml tree. change line 39 to a valid xml filename.
import sys from org.dom4j.io import SAXReader def show_indent(level): return ' ' * level def show_node(node, level): """Display one node in the DOM tree. """ if node.getNodeType() == node.ELEMENT_NODE: name = node.getName() print '%sNode: %s' % (show_indent(level), name, ) attrs = node.attributes() for attr in attrs: aName = attr.getQualifiedName() aValue = attr.getValue() print ' %sAttr -- %s: %s' % (show_indent(level), aName,aValue,) if node.getName() == 'RefNum': val = node.getText() print '%stitle: "%s"' % (show_indent(level+1), val, ) elif node.getName() == 'link': val = node.getText() print '%slink : "%s"' % (show_indent(level+1), val, ) if node.getNodeType() == node.TEXT_NODE: print '**** text node' def show_tree(node, level): show_node(node, level) level1 = level + 1 children = node.elements() for child in children: show_tree(child, level1) def test(): print 'Version: %s' % (sys.version, ) reader = SAXReader() doc = reader.read('example.xml') root = doc.getRootElement() show_tree(root, 0) def main(): test() if __name__ == '__main__': main()