唉!還真是麻煩不斷俄,又有問題了,不知道為什么會符號錯誤!這書上的源代碼都有毛病嗎?
<?xml  version="1.0"  encoding="utf-8"?>
<! DOCTYPE   車  SYSTEM  "dtdFile.dtd">
<>
<汽車  車牌="汽 A1234567">交通工具</汽車>
<驢車  車牌="驢 A7654321">農(nóng)用車</驢車>
</>
dtd文件:
<!ELEMENT  車  (汽車*,驢車*)>
<!ELEMENT  汽車(#PCDATA)>
<!ATTLIST   汽車  車牌 CDATA  #REQUIRED>
<!ELEMENT  驢車(#PCDATA)>
<!ATTLIST   驢車  車牌 CDATA  #IMPLIED>
java解析器:
import javax.xml.parsers.*;
import org.xml.sax.helpers.*;
import org.xml.sax.*;
import java.io.*;

public class testone
{
    
public static void main(String args[]){
        
try{
            SAXParserFactory factory
=SAXParserFactory.newInstance();
            factory.setValidating(
true);
            factory.setNamespaceAware(
true);
            SAXParser saxParser
=factory.newSAXParser();
            MyHandler handler
=new MyHandler();
            saxParser.parse(
new File("car.xml"),handler);
        }

        
catch(Exception e){System.out.println(e);}
    }

}


   
class MyHandler  extends DefaultHandler
   
{
       
public void startElement(String uri,String localName,String qName,Attributes atts){
           System.out.print(
"<"+localName+">");
           System.out.println(
"該標記的屬性:");
           
for(int k=0;k<atts.getLength();k++){
               System.out.print(
"屬性名稱:");
               System.out.print(atts.getLocalName(k)
+"  ");
               System.out.print(
"屬性類型:");
               System.out.print(atts.getType(k)
+"  ");
               System.out.print(
"屬性的值:");
               System.out.print(atts.getValue(k)
+"  ");
           }

       }

       
public void endElement(String uri,String localName,String qName){
           System.out.println(
"<"+localName+">");
       }

       
public void error(SAXParseException e)throws SAXException
       
{
           String errorMessage
=e.getMessage();
           System.out.println(
"一般錯誤:"+errorMessage);
       }

 }

錯誤信息是這樣的:
---------- Java編譯 ----------[此問題解決函數(shù)名大小寫搞錯了]
testone.java:13: 找不到符號
符號: 方法 newSaxParser()
位置: 類 javax.xml.parsers.SAXParserFactory
      SAXParser saxParser=factory.newSaxParser();
                                 ^
1 錯誤

Output completed (5 sec consumed) - Normal Termination
----------------------------------------------------------------------------
符號指什么啊?
錯誤信息第二個:
---------- Java運行 ----------
org.xml.sax.SAXParseException: The markup in the document preceding the root element must be well-formed.

Output completed (3 sec consumed) - Normal Termination
---------------------------------------------------------------------------------------------------------------------
 相關(guān)連接http://book.csdn.net/bookfiles/234/10023410858.shtml
使用瀏覽器檢查xml文件得到如下信息:
-----------------------------------------------
無法顯示 XML 頁。
使用 樣式表無法查看 XML 輸入。請更正錯誤然后單擊 刷新按鈕,或以后重試。
文本內(nèi)容中發(fā)現(xiàn)無效字符。處理資源 'file:///E:/web/dtdFile.dtd' 時出錯。第 1 行,位置: 12

<!ELEMENT 
------------------------------------------------------

---------- Java運行 ----------[現(xiàn)在的錯誤]
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.

Output completed (0 sec consumed) - Normal Termination

^_^終于所有問題都解決了
最后一個問題是因為dtd文件沒有按utf-8編碼方式保存所導致的!

現(xiàn)在的運行結(jié)果:
---------- Java運行 ----------
<車>該標記的屬性:
<汽車>該標記的屬性:
屬性名稱:車牌  屬性類型:CDATA  屬性的值:汽 A1234567  <汽車>
<驢車>該標記的屬性:
屬性名稱:車牌  屬性類型:CDATA  屬性的值:驢 A7654321  <驢車>
<車>

Output completed (0 sec consumed) - Normal Termination