簡體   English   中英

如何在Java的SAX Parser中解析嵌套元素?

[英]How can I parse nested elements in SAX Parser in java?

我想使用以下格式的java中的SAX解析器來解析XML文件:

<Deals>
  <Deal>
   <id> 10</id>
   <title> title </title>
   <city>
     <id> 1 </id>
     ...
   </city>
  </Deal>
  ...
</Deals>

我很難區分交易節點的id元素和城市節點的id元素。

您可以做的一件事(我已經看過並使用過它-我不確定這是最有效或最有效的方法,但是它確實有效)是在解析器中維護某些狀態,無論該狀態是一組已定義的狀態或一些布爾標志,它們描述您在文檔中的位置。 例如,您可能有:

boolean inDeals = false;
boolean inDeal = false;
boolean inCity = false;

然后,在startElement回調中,如果開始標記為Deals ,則將inDeals設置為true。 對於Dealcity 在endElement回調中,進行相反操作(例如,結束標記== Deals ,將inDeals設置回false)。 在您的character方法中,或者您正在處理標簽的方法中,只需根據當時解析器的狀態進行處理即可。 例如:

if(inDeal) {
    if(inCity) {
        cityId = /*the characters*/;
    } else dealId = /*the characters*/;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM