我使用XML Spy 查看我编写的XML和DTD的时候,总是报告 根元素 books 跟DTD中的申明不匹配,我错在哪里?
以下时我的DTD和XMLDTD 定义<?xml version="1.0" encoding="GB2312"?>
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by xmlspy (xmlspy) -->
<!ELEMENT books (book+)>
<!ELEMENT book (author, title, price)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT price (#PCDATA)>具体数据XML
<?xml version="1.0"?>
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by xmlspy (xmlspy) -->
<!DOCTYPE book SYSTEM "C:\Documents and Settings\Xml\book.dtd">
<books>
<book>
<author>Nigel Rees</author>
<title>Saying of the Century</title>
<price>12.56</price>
</book>
<book>
<author>Evelyn Waugh</author>
<title>Sword of Honour</title>
<price>234.3</price>
</book>
</books>

解决方案 »

  1.   

    1.没有根结点,XML数据只能有一个根(第一级只能有一个元素),而你有四个
    2.单属性标签的定义错误,无子结点的标签不用
    “<TagName Prop1=Value1 Prop2=Value2> </TagName>”
    的形式时,应该用以下形式
    “<TagName Prop1=Value1 Prop2=Value2 />”
      

  2.   

    你在生成XML文本的时候(不只是解析时),也可以借用IXMLDOMDocument 等组件
      

  3.   

    现在这个XML应该是对的了吧
    <?xml version="1.0" encoding="UTF-8"?><bookshell>
    <books>
    <book>
    <author>Du Peng Chao</author>
    <title>Today Story</title>
    <price>324.43</price>
    </book>
    <book>
    <author>Zhang Jing</author>
    <title>Love Me</title>
    <price>2345.34</price>
    </book>
    <book>
    <author>Zhou Yu Feng</author>
    <title>Football Money</title>
    <price>32.43</price>
    </book>
    <book>
    <author>Lin Feng</author>
    <title>Beautiful Girl</title>
    <price>23.45</price>
    </book>
    </books>
    </bookshell>不知道这个的DTD写出来是什么样子?
      

  4.   

    用了自动生成工具,出来是这样的东西<?xml version="1.0" encoding="UTF-8"?><!ELEMENT bookshell (books)>
    <!ELEMENT books (book+)>
    <!ELEMENT book (author, title, price)>
    <!ELEMENT price (#PCDATA)>
    <!ELEMENT title (#PCDATA)>
    <!ELEMENT author (#PCDATA)>
      

  5.   

    1.没有根结点,XML数据只能有一个根(第一级只能有一个元素),而你有四个
    除了这一点,似乎其他的都一样了,但原来的文件还是提示有问题
      

  6.   

    把这两句删了
    <!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by xmlspy (xmlspy) -->
    <!DOCTYPE book SYSTEM "C:\Documents and Settings\Xml\book.dtd">
      

  7.   

    <!DOCTYPE book SYSTEM "C:\Documents and Settings\Xml\book.dtd">
    这一句表明根结点应该是book,而下面的实际根结点却不是。改成
    <!DOCTYPE books SYSTEM "C:\Documents and Settings\Xml\book.dtd">
    应该就好了