Android搜索属性中的SAX解析

时间:2013-01-04 14:42:14

标签: java android xml-parsing sax android-xml

我试图使用SAX识别属性。我的XML如下

<DAY VALUE="1">
    <BREAKFAST>0700</BREAKFAST>
    <LUNCH>1200</LUNCH>
    <DINNER>1900</DINNER>
</DAY> 
<DAY VALUE="2">
    <BREAKFAST>0730</BREAKFAST>
    <LUNCH>1230</LUNCH>
    <DINNER>1930</DINNER>
</DAY> 

我的startElement代码如下:

@Override
    public void startElement(String uri, String localName, String qName,
            Attributes attributes) throws SAXException {
        elementOn = true;
        if (localName.equals("DAY"))
        {
            data = new XMLGettersSetters();
        } 
    }

上面的代码会找到第一个元素"DAY"并给我内容但不包含剩余的DAY元素。

有没有办法可以搜索属性?我的目标是获得当月的当天,然后在xml中搜索这一天。例如,如果今天是第二个,那么我想在XML文件中搜索DAY VALUE="2"并获取子元素

== EDIT

如果我将XML修改为

<DAY_1>
        <BREAKFAST>0700</BREAKFAST>
        <LUNCH>1200</LUNCH>
        <DINNER>1900</DINNER>
    </DAY_1> 
    <DAY_2>
        <BREAKFAST>0730</BREAKFAST>
        <LUNCH>1230</LUNCH>
        <DINNER>1930</DINNER>
    </DAY_2>

和代码:

  if (localName.equals("DAY_2"))
        {
            data = new XMLGettersSetters();
        } 

如果在logcat中未突出显示该类,则会获得NullPointerException的名称。它指的是另一个类,但我注释掉了那些行

1 个答案:

答案 0 :(得分:2)

你可以得到这样的属性值:

 if (localName.equals("DAY")){
    String day = "";
    if (attributes.getValue("VALUE") != null) {
        day = attributes.getValue("VALUE");
    }
                //data = new XMLGettersSetters();
    }