1 9 10 package test.dom4j; 11 12 import junit.framework.Test; 13 import junit.framework.TestSuite; 14 import junit.textui.TestRunner; 15 import org.dom4j.Document; 16 import org.dom4j.Element; 17 import org.dom4j.Namespace; 18 import org.dom4j.QName; 19 import org.dom4j.io.SAXReader; 20 21 import java.io.File ; 22 import java.util.HashMap ; 23 import java.util.Iterator ; 24 import java.util.List ; 25 import java.util.Map ; 26 27 32 public class TestNamespace extends AbstractTestCase { 33 34 35 protected static String INPUT_XML_FILE = "xml/namespaces.xml"; 36 37 38 protected static Namespace XSL_NAMESPACE; 39 40 protected static QName XSL_TEMPLATE; 41 42 43 public static void main( String [] args ) { 44 TestRunner.run( suite() ); 45 } 46 47 public static Test suite() { 48 return new TestSuite( TestNamespace.class ); 49 } 50 51 public TestNamespace(String name) { 52 super(name); 53 } 54 55 public void debugShowNamespaces() throws Exception { 58 Element root = getRootElement(); 59 60 for ( Iterator iter = root.elementIterator(); iter.hasNext(); ) { 61 Element element = (Element) iter.next(); 62 63 log( "Found element: " + element ); 64 log( "AbstractNamespace: " + element.getNamespace() ); 65 log( "AbstractNamespace prefix: " + element.getNamespacePrefix() ); 66 log( "AbstractNamespace URI: " + element.getNamespaceURI() ); 67 } 68 } 69 70 public void testGetElement() throws Exception { 71 Element root = getRootElement(); 72 73 74 Element firstTemplate = root.element( XSL_TEMPLATE ); 75 assertTrue( "Root element contains at least one <xsl:template/> element", firstTemplate != null ); 76 77 log( "Found element: " + firstTemplate ); 78 } 79 80 public void testGetElements() throws Exception { 81 Element root = getRootElement(); 82 83 List list = root.elements( XSL_TEMPLATE ); 84 assertTrue( "Root element contains at least one <xsl:template/> element", list.size() > 0 ); 85 86 log( "Found elements: " + list ); 87 } 88 89 public void testElementIterator() throws Exception { 90 Element root = getRootElement(); 91 Iterator iter = root.elementIterator( XSL_TEMPLATE ); 92 assertTrue( "Root element contains at least one <xsl:template/> element", iter.hasNext() ); 93 94 do { 95 Element element = (Element) iter.next(); 96 log( "Found element: " + element ); 97 } 98 while ( iter.hasNext() ); 99 } 100 101 102 public void testNamespaceUriMap() throws Exception { 103 Map uris = new HashMap (); 105 uris.put( "x", "fooNamespace" ); 106 uris.put( "y", "barNamespace" ); 107 108 xpathFactory.setXPathNamespaceURIs( uris ); 109 110 SAXReader reader = new SAXReader(); 112 reader.setNodeFactory( nodeFactory ); 113 Document doc = reader.read( "xml/test/nestedNamespaces.xml" ); 114 115 String value = doc.valueOf( "/x:pizza/y:cheese/x:pepper" ); 118 119 log( "Found value: " + value ); 120 121 assertEquals( "XPath used default namesapce URIS", "works", value ); 122 } 123 124 protected void setUp() throws Exception { 127 SAXReader reader = new SAXReader(); 128 document = reader.read( new File ( INPUT_XML_FILE ) ); 129 XSL_NAMESPACE = nodeFactory.createNamespace("xsl", "http://www.w3.org/1999/XSL/Transform"); 130 XSL_TEMPLATE = nodeFactory.createQName("template", XSL_NAMESPACE ); 131 } 132 133 134 protected Element getRootElement() { 135 Element root = document.getRootElement(); 136 assertTrue( "Document has root element", root != null ); 137 return root; 138 } 139 } 140 141 142 143 144 188 | Popular Tags |