读取 xml 到list

String fileName = "AdapterModultSetting.xml";

MainSettingData mainSettingData = null;

SubSettingData subSettingData = null;

List<MainSettingData> mainSettingDatas = null;

List<SubSettingData> subSettingDatas = null;

//第一步--------读SharedPreferences

//第一步--------从assets中获得xml数据

InputStream is = mContext.getResources().getAssets().open(fileName);

XmlPullParser parse = Xml.newPullParser();

parse.setInput(is, "utf-8");

int type = parse.getEventType();

while (type != XmlPullParser.END_DOCUMENT) {

switch (type) {

case XmlPullParser.START_DOCUMENT:

mainSettingDatas = new ArrayList<MainSettingData>();

break;

case XmlPullParser.START_TAG:

Log.i("测试数据", parse.getName());

if ("main_menu_data".equals(parse.getName())) {

mainSettingData = new MainSettingData();

mainSettingData.setId(Integer.parseInt(parse.getAttributeValue(parse.getNamespace(), "id")));//save parameter

mainSettingData.setTitle(parse.getAttributeValue(parse.getNamespace(), "title"));

subSettingDatas = new ArrayList<SubSettingData>();//子菜单

}

if (mainSettingData != null) {

if ("sub_menu_data".equals(parse.getName())) {

subSettingData = new SubSettingData();

subSettingData.setId(Integer.parseInt(parse.getAttributeValue(parse.getNamespace(), "id")));

subSettingData.setType(Integer.parseInt(parse.getAttributeValue(parse.getNamespace(), "type")));

subSettingData.setSubTitle(parse.getAttributeValue(parse.getNamespace(), "subTitle"));

subSettingData.setSubState(parse.getAttributeValue(parse.getNamespace(), "subState"));

subSettingData.setSubValue(Integer.parseInt(parse.getAttributeValue(parse.getNamespace(), "subValue")));

}

}

break;

case XmlPullParser.END_TAG:

if ("main_menu_data".equals(parse.getName())) {

if(subSettingData != null && subSettingDatas != null){

subSettingDatas.add(subSettingData);

}

if (mainSettingData != null && mainSettingDatas != null) {

if(subSettingDatas != null){

mainSettingData.setSubSettingDatas(subSettingDatas);//子菜单加入主菜单

}

mainSettingDatas.add(mainSettingData);

}

}

break;

}

type = parse.next();

}

is.close();

数据在mainSettingDatas中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中,可以使用多种方式读取XML文件。以下是两种常见的方法: 1. 使用Java标准库中的DOM解析器: ```java import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; // 读取XML文件 try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse(new File("path/to/xml/file.xml")); // 获取根节点 Element root = document.getDocumentElement(); // 遍历子节点 NodeList nodeList = root.getElementsByTagName("tag_name"); for (int i = 0; i < nodeList.getLength(); i++) { Node node = nodeList.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { Element element = (Element) node; // 获取节点的值 String value = element.getTextContent(); System.out.println(value); } } } catch (Exception e) { e.printStackTrace(); } ``` 2. 使用第三方库,如JDOM或DOM4J: ```java import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.input.SAXBuilder; // 读取XML文件 try { SAXBuilder builder = new SAXBuilder(); Document document = builder.build(new File("path/to/xml/file.xml")); // 获取根节点 Element root = document.getRootElement(); // 遍历子节点 List<Element> elements = root.getChildren("tag_name"); for (Element element : elements) { // 获取节点的值 String value = element.getText(); System.out.println(value); } } catch (Exception e) { e.printStackTrace(); } ``` 以上两种方法都可以读取XML文件并获取其中的节点值。选择哪种方法取决于个人偏好和项目需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值