2016-03-02 77 views
0

XML中的事件和標籤有什麼區別?xml中的事件和標籤之間的區別

事件是否像大標題和標籤是字幕?

我怎麼知道哪個是事件,哪個是標籤?

因此,在下面的代碼中,我從這個XML文件中獲取事件和標籤。

我看到標籤在某種程度上埋在XML文件中爲每一個事件,它正在經歷的標籤,但我想知道如何告訴兩個

public boolean process(){ 
    boolean status = true; 
    Application currentRecord = null; 
    boolean inEntry = false; 
    String textValue = ""; 

    try { 
     XmlPullParserFactory factory = XmlPullParserFactory.newInstance().newInstance(); 
     factory.setNamespaceAware(true); 
     XmlPullParser xpp = factory.newPullParser(); 
     xpp.setInput(new StringReader(this.xmlData)); 
     int eventType = xpp.getEventType(); 

     while(eventType != XmlPullParser.END_DOCUMENT){ 
      String tagName = xpp.getName(); 
      switch (eventType){ 
       case XmlPullParser.START_TAG: 
        Log.d("ParseApplications", "Starting Tag for " + tagName); 
        if (tagName.equalsIgnoreCase("entry")) { 
         inEntry = true; 
         currentRecord = new Application(); 
        } 
        break; 

       case XmlPullParser.TEXT: 
        textValue = xpp.getText(); 
        break; 

       case XmlPullParser.END_TAG: 
        Log.d("ParseApplication", "Ending Tag for " + tagName); 
        if (inEntry){ 
         if (tagName.equalsIgnoreCase("entry")){ 
          applications.add(currentRecord); 
          inEntry = false; 
         } 
         else if (tagName.equalsIgnoreCase("name")){ 
          currentRecord.setName(textValue); 
         } 
         else if (tagName.equalsIgnoreCase("artist")){ 
          currentRecord.setArtist(textValue); 
         } 
         else if (tagName.equalsIgnoreCase("release date")){ 
          currentRecord.setReleaseDate(textValue); 
         } 
        } 
        break; 
       default : 

      } 
      eventType = xpp.next(); 
+0

示例代碼將不勝感激...... –

+0

@chalarangelo added – Jchoi

回答

1

之間的確切差異的XML文件包括一組標籤,應該使用XML Schema或DTD(舊樣式)定義。

一些XML解析器,就像你使用的那樣,是事件驅動的。這意味着他們會按順序讀取XML文件,並在遇到特定元素時引發事件,如開始標記,結束標記標記內的文本。通過這些事件,它們向解析器的調用者發信號通知解析已經到達的XML內容中,並且如果調用者決定用特定標籤做某事,那麼它將對事件作出反應。

總之,當解析器遇到XML文件的元素(如標籤)時會引發事件。另一方面,標籤是XML文件的構建塊。

+0

因此,您可以通過將標記設置爲事件來獲取標記以引發事件,這意味着在達到標記時將輸入事件? – Jchoi

+0

解析器在遇到標記時正在引發事件。標籤本身不能引發事件。提出的事件是解析器告訴你一個標籤已經遇到過的情況,以防你想使用它。此外,標籤不能設置爲事件,它們之間沒有這樣的關係,看到它是這樣的:標籤是汽車中的汽油「事物」,事件是在您駕駛汽車時發生的事件,像你用盡氣體:) – iullianr

+0

哦,所以在我的代碼事件會遇到像開始標籤,文本和結束標籤,但標籤本身是什麼組成的特定部分的XML內容? – Jchoi

相關問題