读写一个XML文件,要求能查找到第一个特定名字的节点。根节点最后追加一个节点。其他功能不限。(不使用现成DOM等开源jar包)

解决方案 »

  1.   

    用<...>的格式表明一些特定节点的开始,用</...>表明一些特定节点的结束,去捣鼓XML字符串
      

  2.   

    只提供思路
    第一用正则,这是最快的,但是歧义也多。
    时间足够多哪编写类吧。
    遍历,一个字符一个字符读
    ,注意< > = / " 和空格这几个特殊字符和字符的组合
      

  3.   

    把XML整个文件读出来,存为字符串,根据字符串中XML的语法规则进行解析撒.
    不使用dom4j那就只好这样啦.也没什么难的,就是写起来烦.
      

  4.   

    也就是说要实现一个 XML 解析器喽~~
      

  5.   

    这是考试吗?还规定不准用dom,晕
      

  6.   

    标准的JDK里面就自带了处理XML的类自己可以查看API
      

  7.   

    private static void documentAnalyzeXML(String xmlPath) {
    if ("".equals(xmlPath))
    return;
    DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance();
    DocumentBuilder dombuilder = null;
    InputStream is = null;
    try {
    dombuilder = domfac.newDocumentBuilder();
    is = new FileInputStream(xmlPath);
    Document doc = dombuilder.parse(is);
    Element root = doc.getDocumentElement();
    NodeList pdm = root.getChildNodes();
    ……
    } catch (ParserConfigurationException e) {
    e.printStackTrace();
    } catch (FileNotFoundException ex) {
    ex.printStackTrace();
    } catch (SAXException ex) {
    ex.printStackTrace();
    } catch (IOException ec) {
    ec.printStackTrace();
    } finally {
    try {
    is.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    } }…………
    …………
    /**
     * 辅助方法 从节点列表中得到节点为nodeName的字段。//此方法可以写成递归
     * 
     * @param nodelist
     * @param nodeName
     * @return
     */
    private static Node getNode(NodeList nodelist, String nodeName) {
    Node node = null;
    // 注意:for循环可以优化:把节点名称和Node当做参数。
    for (int i = 0; i < nodelist.getLength(); i++) {
    node = nodelist.item(i);
    if (nodeName.equals(node.getNodeName()))
    break;
    }
    return node;
    }
      

  8.   

    可以参考jdk API,很简单的。可以找找。也希望其他人帮一下楼主!
      

  9.   

    这么跟你说吧,JDK 内置的 XML 解析器也是第三方的!