2012-06-17 104 views
0

我期待在XML之間的分割節點解析解析拉的方法來解析以下文件:XMLPull - 基類和派生類

<layout> 
    <button height="20" width="20" text="Hello world" /> 
    <image height="10" width="10" img="foo.png" /> 
</layout> 

,併產生相應的Java對象。我有一個抽象基類組件,它的職責是描述一個具有高度和寬度的通用組件,它應該能夠通過解析傳遞的「節點」的相應XML屬性來獲得這些值(更確切地說,解析器指向該節點)。

派生自組件,我有兩個具體的類Button和Image,分別添加一個文本和一個圖像。他們應該能夠從XML屬性初始化這些值。

這是類實現草圖:

public abstract class Component { 
    public int width; 
    public int height; 

    public Component(XmlPullParser parser) { 
     //TODO ??? 
    } 
} 

public class Button extends Component { 
    public String text; 

    public Button(XmlPullParser parser) { 
     super(parser); 
     //TODO ??? 
    } 
} 

public class Image extends Component { 
    public String img; 

    public Image(XmlPullParser parser) { 
     super(parser); 
     //TODO ??? 
    } 
} 

的問題是,如何實現解析,獲取這種行爲?我主要關心的是,當你在解析器上調用nextTag()時,解析器本身是「修改的」。因此,如果Component超類讀取整個節點以獲取寬度和高度(調用super()構造函數),派生類如何讀同一個節點來初始化它自己?

感謝;)

回答