我试图使用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
的名称。它指的是另一个类,但我注释掉了那些行
答案 0 :(得分:2)
你可以得到这样的属性值:
if (localName.equals("DAY")){
String day = "";
if (attributes.getValue("VALUE") != null) {
day = attributes.getValue("VALUE");
}
//data = new XMLGettersSetters();
}