1

xmlPullParser を介して xml コンテンツをデータベースにインポートしています。しかし、xml ファイルに html タグが含まれている場合、xmlParser エラーが発生します。

  • XML ファイル内。< ; の使用 と> ; <>の代わりに動作します

  • xml ファイルで html タグ ( < や > など) を直接使用することはできますか?

  • そうでない場合、この問題を解決するにはどうすればよいですか? すべての「<」を「 < ; 」に変換する必要がありますか...など

    エラー: XmlPullParserException: 不正: 属性値内の「<」

XML ファイルの場合:

// DOESN'T WORK
 <sample
note= "<b>Text</b>"
 />

 // WORKS
<sample
note= "&lt;b&gt; Text &lt;/b&gt; "      
/>
4

2 に答える 2

0

私のstudent.xmlファイルがassetsフォルダーにあるとします。

<students>
    <student id="11">
        <roll>1</roll>
        <name>sachin</name>
        <result>pass</result>
    </student>
    <student id="12">
        <roll>2</roll>
        <name>sehwag</name>
        <result>pass</result>
    </student>
    <student id="13">
        <roll>3</roll>
        <name>rohit</name>
        <result>fail</result>
    </student>
</students>

ボタン Onclick のコードを書き留めます。

try {

            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
            XmlPullParser xpp = factory.newPullParser();

            xpp.setInput(getAssets().open("student.xml"), null);
            int event = xpp.getEventType();

            while (event != XmlPullParser.END_DOCUMENT) {

                if (event == XmlPullParser.START_DOCUMENT) {

                } else if (event == XmlPullParser.START_TAG) {
                    tname = xpp.getName();
                    if (tname.equalsIgnoreCase("student")) {
                        str += xpp.getAttributeValue(0).toString() + " : ";

                    }

                } else if (event == XmlPullParser.END_TAG) {

                } else if (event == XmlPullParser.TEXT) {

                    if (tname.equalsIgnoreCase("roll")) {
                        str += xpp.getText();
                        // event = xpp.next();
                    } else if (tname.equalsIgnoreCase("name")) {
                        str += xpp.getText();
                        // event = xpp.next();
                    } else if (tname.equalsIgnoreCase("result")) {
                        str += xpp.getText();
                        // event = xpp.next();
                    }

                }
                event = xpp.next();
            }

        } catch (XmlPullParserException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        tv.setText(str);
    }
于 2013-05-27T13:13:34.543 に答える