我是通过xmlPullParser将xml内容导入数据库。 但是,如果xml文件包含html标记,则xmlParser错误。
如果没有,如何解决这个问题?我需要转换所有“<”到“& lt; ”......等等
错误:XmlPullParserException:非法:“<”内部属性值
在XML文件中:
// DOESN'T WORK <sample note= "<b>Text</b>" /> // WORKS <sample note= "<b> Text </b> " />
答案 0 :(得分:1)
目前还不清楚你的问题来自哪里(如评论中所述,你的 ... 标签是xml-ok),不管这是我的两分钱:如果你需要一个xml文件可以很容易地在大多数浏览器上显示(或者一个可以轻松解析的html文件)我建议你不要浪费时间重新尝试将HTML强制转换为XML,而是尝试使用XHTML:
答案 1 :(得分:0)
假设,我的student.xml文件位于资产文件夹中,如
<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);
}