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 内でその日を検索することを目指しています。たとえば、今日が 2 番目の場合、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 に答える