实例说明 多级联动下拉列表是指一组相互关联的下拉列表,相邻的两个下拉列表是父子关系,改变父下拉列表的值,子下拉列表也随之改变。运行本实例,如图1所示,在页面中将显示一个三级联动下拉列表,在省和直辖市的下拉列表框中选择省份,在地级市下拉列表中将显示出该省份的地级市信息,在地级市下拉列表中选择其中一个市,在县、县级市或区下拉列表中将显示区信息。
关键技术在实现本范例时,首先需要设计一个保存省市信息的XML文件,在该文件中,需要充分体现出省/直辖市、地级市和县/县级市/区之间的关系。接下来需要从XML文件中获取所需的信息,也就是解析XML文件。本实例中应用的是dom4j组件解析XML文件,下面将对应用dom4j解析XML文件进行介绍。 1.构建XML文档对象 在解析XML文档前,需要构建要解析的XML文件所对应的XML文档对象。在获取XML文档对象时,首先需要创建SAXReader对象,然后调用该对象的read()方法获取对应的XML文档对象。SAXReader对象的read()方法的原型如下: public Document read(Filefile) throws DocumentException file:用于指定要解析的XML文件。 例如,获取XML文件zone.xml对应的XML文档对象的代码如下: String fileURL =request.getRealPath("/xml/zone.xml"); SAXReader reader = newSAXReader(); // 实例化SAXReader对象 Document document =reader.read(new File(fileURL)); //获取XML文件对应的XML文档对象 2.获取根节点 在构建XML文档对象后,就可以通过该XML文档对象获取根节点。dom4j组件的Document对象的getRootElement()方法可以返回指定XML文档的根节点。getRootElement()方法的原型如下: public ElementgetRootElement() 返回值:Element对象。 例如,获取XML文档对象document的根节点的代码如下: Element country=document.getRootElement(); // 获取根节点 3.获取子节点 在获取根节点后,还可以获取其子节点,这可以通过Element对象的element()或elements()方法实现。下面将分别介绍这两个方法。 element()方法 element()方法用于获取指定名称的第一个节点。该方法通常用于获取根节点中节点名唯一的一个子节点。element()方法的原型如下: public Element element(Stringname) 参数说明: name:用于指定要获取的节点名。 返回值:Element对象。 elements()方法 elements()方法用于获取指定名称的全部节点。该方法通常用于获取根节点中多个并列的具有相同名称的子节点。elements()方法的原型如下: public List elements(Stringname) 参数说明: name:用于指定要获取的节点名。 返回值:List