这一段xml,是我用Dom4j的Document对象生成,然后写到文件里的。
用浏览器打开,或者XMLSpy打开,都会提示该文件不具备良好格式。<?xml version="1.0" encoding="UTF-8"?>
<host type="Windows XP" IP Address="127.0.0.1">
<CPU_Usage>44.0</CPU_Usage>
<Total_Memory>5056.0</Total_Memory>
<Free_Memory>4802.0</Free_Memory>
<Max_Memory>65088.0</Max_Memory>
<OS_Name>Windows XP</OS_Name>
<Total_Memory_Size>2095228.0</Total_Memory_Size>
<UsedMemory>1720968.0</UsedMemory>
<Total_Thread>5.0</Total_Thread>
</host>为啥呢?

解决方案 »

  1.   

    因为你没有dtd文件或schema文件给它做格式限制!!!
      

  2.   

    比如有一个dtdfile.dtd文件,内容如下:
    <!ELEMENT sample (Title*,Author*,Email*,Date*,Test*)>
    <!ELEMENT Title (#PCDATA)>
    <!ELEMENT Author (#PCDATA)>
    <!ELEMENT Email (#PCDATA)>
    <!ELEMENT Date (#PCDATA)>
    <!ELEMENT Test (#PCDATA)>
    <!ENTITY www "wwwwwwwwww">
    <!ENTITY m1 "1">
    <!ENTITY m2 "22">
    <!ENTITY m3 "333">
    <!ENTITY m4 "4444">
    <!ENTITY m5 "55555">
    <!ENTITY m6 "666666">
    再有一个TestDTD.xml文件,内容如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE sample SYSTEM "dtdfile.dtd">
    <sample>
    <Title>第一个XML文档</Title>
    <Author>楼主请看</Author>
    <Email>[email protected]</Email>
    <Date>2009-02-25</Date>
    <Test>&m1;</Test>
    <Test>&m1;&m2;</Test>
    <Test>&m1;&m2;&m3;&m4;&m5;&m6;</Test>
    <Test>&lt;&apos;&amp;&quot;&www;&gt;</Test>
    </sample>
    ========================
    你把这2个文件放在同一目录下,然后用XMLSpy打开TestDTD.xml文件,就会发现是格式良好的了.关于schema格式(后缀是xsd)控制的如Spring2.0框架中的applicationContext.xml文件,用的就是xsd的,内容如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
    </beans>
      

  3.   

    你的 IP Address="127.0.0.1"有个空格。
    把它改成IP_Address="127.0.0.1"就没有问题了
      

  4.   

    谢谢 mayuanfei。 
    确实是 IP Address的问题。加上一个横线成IP_Address就可以了。
    只是比较奇怪为什么用Document生成的时候它不去检查一下格式呢。谢谢paullbm耐心的讲解。