⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 forumdaoxml.java

📁 Chinaxp 论坛源代码
💻 JAVA
字号:
/* * XP Forum * * Copyright (c) 2002-2003 RedSoft Group.  All rights reserved. * */package org.redsoft.forum.dao.xml;import java.io.File;import java.util.ArrayList;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.redsoft.forum.dao.ForumDAO;import org.redsoft.forum.web.Forum;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;/** * AccountDAO's implmentation for xml * * @@author <a href="mailto:chjxm@msn.com">cinc</a> * * @@version $Id: ForumDAOxml.java,v 1.2 2004/04/10 19:56:59 cinc Exp $ */public class ForumDAOxml implements ForumDAO {    Forum[] forums;    /**     * Constructor, read forum infomation from forum.xml, and save them to     * array forums[]     *     * @param filename        full filename of forum.xml     */    public ForumDAOxml( String filename ){        int i;        File xmlFile = new File( filename );        ArrayList forumList = new ArrayList();        Document doc = null;        try{            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();            // validate xml file by parser            // that is: use a dtd file to validate the xml file            dbf.setValidating(true);            DocumentBuilder db = dbf.newDocumentBuilder();            doc = db.parse( xmlFile );            Element root = doc.getDocumentElement();            root.normalize();            NodeList nodes = root.getChildNodes();            for (i=0; i<nodes.getLength() ; i++){                Node node = nodes.item(i);                if (node.getNodeName().equals( "forum" )){                    forumList.add( parseForumNode(node) );                }            }            // convert ArrayList to Array            forums = new Forum[forumList.size()];            for (i=0; i<forumList.size(); i++){                forums[i] = (Forum)forumList.get(i);            }        }catch(Exception e){            System.out.println ("Error reading forums.xml: " + e);        }    }    /**     * Read id, name, desc from this node     */    protected Forum parseForumNode( Node forum ){        int id = 0;        String name = null;        String desc = null;        String property, value;        NodeList nodes = forum.getChildNodes();        for (int i=0; i<nodes.getLength() ; i++){            Node node = nodes.item(i);            if (node.getNodeName().equals( "#text" )){                continue;            }            property = node.getNodeName();            value = node.getFirstChild().getNodeValue();            if ( property.equals("id") ){                id = Integer.parseInt( value );            }else if ( property.equals("name") ){                name = value;            }else if ( property.equals("desc") ){                desc = value;            }//            System.out.println(node.getNodeName() + ":" + node.getFirstChild().getNodeValue());        }        return new Forum( id, name, desc );    }    /**     * Return the forum given a forum id     *     * @return Forum - the forum.     * @exception CategoryNotFoundException     */    public Forum getForum( final int forumID ) {        if( (forumID - 1) > forums.length ){            return null;        }else{            return forums[ forumID - 1 ];        }    }    /**     * Retrun a list of forums     *     * @return Forum[] - A array of forums     */    public Forum[] getForumCategory () {        return forums;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -