新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 关于 XML 的一般性技术讨论,提供 XML入门资料 和 XML教程
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XML基础 』 → 使用getElementById怎么得不到结果?[JAVA] 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 6074 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 使用getElementById怎么得不到结果?[JAVA] 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     flyfoxs 帅哥哟,离线,有人找我吗?
      
      
      威望:5
      等级:研一(Artificial Intelligence期期不放过)
      文章:550
      积分:3935
      门派:XML.ORG.CN
      注册:2005/1/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给flyfoxs发送一个短消息 把flyfoxs加入好友 查看flyfoxs的个人资料 搜索flyfoxs在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看flyfoxs的博客楼主
    发贴心情 使用getElementById怎么得不到结果?[JAVA]

    <?xml version="1.0" encoding="UTF-8"?>
    <people>
     <person id="1">
      <name>Tom Higgins</name>
      <age>25</age>
      
     </person>
     <person Id="1">
      <name>Tom Higgins</name>
      <age>25</age>
      
     </person>
     <person ID="1">
      <name>Tom Higgins</name>
      <age>25</age>
      
     </person>
     
    </people>


    针对上面的文档,我用下面的方法得到的element 总是空的.其它语言都可以,比如JS就可以直接用getElementById.
    是不是有什么特别要注意的?


    Element element = doc.getElementById("1");

    注:doc通过如下函数取得

     public static Document getDocument(InputStream is) throws IOException,
       ParserConfigurationException {

      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
      /*
       * 是否使用DTD,Schemal来校验
       */
      factory.setValidating(false);
      /*
       * 是否感知命名空间,要不然后面的解析不支持名称空间
       */
      factory.setNamespaceAware(true);
      
      
      DocumentBuilder builder = factory.newDocumentBuilder();
      Document doc = null;
      try {
       doc = builder.parse(is);
      } catch (SAXException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } catch (IOException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
      return doc;

     }

    [此贴子已经被作者于2006-12-1 19:06:49编辑过]

       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    存在即是被搜索!

    BLOG =>  http://www.OpenJ.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/12/1 18:30:00
     
     flyfoxs 帅哥哟,离线,有人找我吗?
      
      
      威望:5
      等级:研一(Artificial Intelligence期期不放过)
      文章:550
      积分:3935
      门派:XML.ORG.CN
      注册:2005/1/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给flyfoxs发送一个短消息 把flyfoxs加入好友 查看flyfoxs的个人资料 搜索flyfoxs在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看flyfoxs的博客2
    发贴心情 
    自己回答:
    http://topic.csdn.net/t/20030616/16/1921662.html

    在XML文档里给每个元素设了一个叫id的属性,但DOM对象解析文档时并不知道哪个属性作为元素的id,并不是就直接认名为id的属性为元素的id。

    这需要DTD,或者是Scheaml来指出。

    要设置factory.setValidating(true);才行


    http://www.58951.com/info-5047461.html

    光学习理论不行,平时老是看一些标准,实践起来,这个问题就快花了一整天的时间。郁闷

    ----------------------------------------------
    存在即是被搜索!

    BLOG =>  http://www.OpenJ.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/12/2 11:31:00
     
     flyfoxs 帅哥哟,离线,有人找我吗?
      
      
      威望:5
      等级:研一(Artificial Intelligence期期不放过)
      文章:550
      积分:3935
      门派:XML.ORG.CN
      注册:2005/1/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给flyfoxs发送一个短消息 把flyfoxs加入好友 查看flyfoxs的个人资料 搜索flyfoxs在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看flyfoxs的博客3
    发贴心情 
    郁闷,动手实践才发现,还是有问题。只能用DTD,而不能用Schema。

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE people SYSTEM "Xml/people.dtd">
    <people xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Xml/people.xsd">
     <person id="common">
      <name>Tom Higgins</name>
      <age>25</age>
     </person>
     <person id="c">
      <name>Tom Higgins</name>
      <age>25</age>
     </person>
     <person id="d">
      <name>Tom Higgins</name>
      <age>25</age>
     </person>
    </people>
    =========================
    <?xml version="1.0" encoding="UTF-8"?>
    <!--DTD generated by XMLSpy v2005 rel. 3 U (http://www.altova.com)-->
    <!ELEMENT age (#PCDATA)>
    <!ELEMENT name (#PCDATA)>
    <!ELEMENT people (person+)>

    <!ELEMENT person (name, age)>
    <!ATTLIST person
     id ID #REQUIRED
    >


    上面可以正确的使用getElementById,下面却不行。
    <?xml version="1.0" encoding="UTF-8"?>

    <people xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Xml/people.xsd">
     <person id="common">
      <name>Tom Higgins</name>
      <age>25</age>
     </person>
     <person id="c">
      <name>Tom Higgins</name>
      <age>25</age>
     </person>
     <person id="d">
      <name>Tom Higgins</name>
      <age>25</age>
     </person>
    </people>

    ==================================
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <!--W3C Schema generated by XMLSpy v2005 rel. 3 U (http://www.altova.com)-->
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
     <xs:element name="age">
      <xs:simpleType>
       <xs:restriction base="xs:byte">
        <xs:enumeration value="25"/>
        <xs:enumeration value="53"/>
        <xs:enumeration value="75"/>
       </xs:restriction>
      </xs:simpleType>
     </xs:element>
     <xs:element name="name">
      <xs:simpleType>
       <xs:restriction base="xs:string">
        <xs:enumeration value="Barney Smith"/>
        <xs:enumeration value="Susan Shields"/>
        <xs:enumeration value="Tom Higgins"/>
       </xs:restriction>
      </xs:simpleType>
     </xs:element>
     <xs:element name="people" >
      <xs:complexType>
       <xs:sequence>
         
       <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="person" type="personType"/>
        </xs:choice>
       </xs:sequence>
       
      </xs:complexType>
     </xs:element>
     <xs:complexType name="personType">
      <xs:sequence>
       <xs:element ref="name"/>
       <xs:element ref="age"/>
      </xs:sequence>
      <xs:attribute name="id" use="required" type="xs:ID">
      </xs:attribute>
     </xs:complexType>
    </xs:schema>

    ----------------------------------------------
    存在即是被搜索!

    BLOG =>  http://www.OpenJ.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/12/2 21:25:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML基础 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/10/5 18:05:33

    本主题贴数3,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    78.125ms