以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DOM/SAX/XPath 』  (http://bbs.xml.org.cn/list.asp?boardid=11)
----  关于子节点的问题[求助]  (http://bbs.xml.org.cn/dispbbs.asp?boardid=11&rootid=&id=17606)


--  作者:luckerdzr
--  发布时间:4/27/2005 11:38:00 PM

--  关于子节点的问题[求助]
文件domtree.java
import java.io.*;
import java.util.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;
public class domtree extends Object
{
    public static void main(String args[ ])
    {
         DocumentBuilderFactory factory;
         DocumentBuilder docBuilder;
         Document doc;
         Element root;
         String name;
         
         try
         {
            factory=DocumentBuilderFactory.newInstance();
            factory.setValidating(false);
            docBuilder=factory.newDocumentBuilder();
            doc=docBuilder.parse(new FileInputStream(args[0]));
            root=doc.getDocumentElement();
            //System.out.println(root); //print the all xml content
            name=root.getNodeName();
            System.out.println(name);
            getChildren(root);
            }
            
         catch (Exception exp)
         {
            exp.printStackTrace();
            }
        }         
     public static void getChildren(Element elem)
     {
      Node child;
      NodeList children;
         int i,Max;
         String elemName;
             
      children=elem.getChildNodes();
         Max=children.getLength();
         System.out.println(Max);
      //child=elem.getFirstChild();
         for (i=0;i<Max;i++)
         {
          child=children.item(i);
          elemName=child.getNodeName();
                         System.out.println(elemName);
          }
        }
  }

文件 library.xml
<?xml version="1.0" encoding="GB2312"?>
<ns:library xmlns:ns="http://www.javaserverprogramming.com/library">
<book ISBN="12">
<title>Visual C++入门与精通</title>
<author country="China">VC工作室</author>
<press>清华大学出版社</press>
<price unit="RMB">45</price>
<copies>3</copies>
</book>
<book ISBN="34">
<title>Thinking in Java</title>
<author country="USA">Bruce Eckel</author>
<press>机械工业出版社</press>
<price unit="RMB">60</price>
<copies>10</copies>
</book>
</ns:library>

结果
ns:library
5
#text
book
#text
book
#text

根节点居然有五个子节点,请问这个根节点是怎么看的?
怎么会有三个Text型的节点????


--  作者:binaryluo
--  发布时间:4/28/2005 1:21:00 PM

--  
举个例子:
XML文件:
<?xml version="1.0" encoding="GB2312"?>
  <library>
    <book>book1</book>
    <book>book2</book>
    <book>book3</book>
  </library>
</xml>
在该文件中,表面上看library有3个孩子,这种理解是错误的。library实际上有7个孩子:
另外四个是#text类型的,在这个上面的例子里他们的值为空,所以看上去好像只有3个孩子。
再看下面这个例子:
<?xml version="1.0" encoding="GB2312"?>
  <library>aaaaa
    <book>book1</book>bbbbb
    <book>book2</book>cccccc
    <book>book3</book>ddddd
  </library>
</xml>
这个例子中就可以明显的看出有7个孩子:
第一个孩子是#text类型的,他的值是aaaaa
第二个孩子是#Element类型的,该孩子(第二个孩子)又有一个孩子是#text类型的,他的值是book1
第三个孩子是#text类型的,他的值是bbbbb
.....
剩下的四个孩子依此类推。
--  作者:luckerdzr
--  发布时间:5/8/2005 11:44:00 AM

--  
谢谢!
但是我现在只想标记有内容的Text区域。
怎么区分是否有内容呢?


[此贴子已经被作者于2005-5-8 17:33:55编辑过]

W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.988ms