0

我正在尝试使用 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"并获取子元素

==编辑

如果我将我的 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();
        } 

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

4

1 回答 1

2

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

 if (localName.equals("DAY")){
    String day = "";
    if (attributes.getValue("VALUE") != null) {
        day = attributes.getValue("VALUE");
    }
                //data = new XMLGettersSetters();
    } 
于 2013-01-04T14:46:04.113 回答