本帖最后由 herokillergy 于 2010-05-18 12:43:31 编辑

解决方案 »

  1.   

    首先 出现上面的情况是很正常的。#document: null 代表rootNode为空,代表不了什么。//rootNode被默认DeferredDocumentImpl实现
    /*
    *public class DeferredDocumentImpl
     *   extends DocumentImpl
     *   implements DeferredNode
    */
    可以用下面方法:
     doc.getElementsByTagName("person");
    //------person.xml如下
    <?xml version="1.0" encoding="GBK"?>
    <result>
      <persontag>persontag</persontag>
       <info>
                    <id>001</id>
                    <name>zhangsan</name>
     <sex>flman</sex>
      <age>100</age>
       </info>
    </result>
    //--ok
    protected void loadPersonInfo(String xmlname, Document doc) {
    NodeList nodeList = doc.getElementsByTagName("info");
    String ownerStr = "";
    for (int i = 0; i < nodeList.getLength(); i++) {
    org.w3c.dom.Node owner = nodeList.item(i);
    if (ownerStr.equalsIgnoreCase("")) {
    ownerStr = XmlParser
    .getNodeChildTextValue(owner, "id", "0");
     
    } else {
    ownerStr = (new StringBuilder(String.valueOf(ownerStr)))
    .append("|").append(
    XmlParser.getNodeChildTextValue(owner,
    "id", "0")).toString();

    }
    ownerStr = (new StringBuilder(String.valueOf(ownerStr)))
    .append(",").append(
    myReplace(XmlParser.getNodeChildTextValue(owner,
    "name", ""))).toString();
    ownerStr = (new StringBuilder(String.valueOf(ownerStr)))
    .append(",")
    .append(XmlParser.getNodeChildTextValue(owner, "sex", ""))
    .toString();
    ownerStr = (new StringBuilder(String.valueOf(ownerStr)))
    .append(",").append(
    XmlParser.getNodeChildTextValue(owner,
    "age", "")).toString(); } ownerInfo = ownerStr;
    }
    //--ok
      

  2.   

    也有可能是你的 doc.getLength() =0