栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用NodeList遍历XML中的所有元素

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用NodeList遍历XML中的所有元素

    documentBuilderFactory dbf = documentBuilderFactory.newInstance();    documentBuilder db = dbf.newdocumentBuilder();    document dom = db.parse("file.xml");    Element docEle = dom.getdocumentElement();    NodeList nl = docEle.getChildNodes();    int length = nl.getLength();    for (int i = 0; i < length; i++) {        if (nl.item(i).getNodeType() == Node.ELEMENT_NODE) { Element el = (Element) nl.item(i); if (el.getNodeName().contains("staff")) {     String name = el.getElementsByTagName("name").item(0).getTextContent();     String phone = el.getElementsByTagName("phone").item(0).getTextContent();     String email = el.getElementsByTagName("email").item(0).getTextContent();     String area = el.getElementsByTagName("area").item(0).getTextContent();     String city = el.getElementsByTagName("city").item(0).getTextContent(); }        }    }

遍历所有子项,

nl.item(i).getNodeType() ==Node.ELEMENT_NODE
并用于过滤出文本节点。如果XML中没有其他内容,则剩下的是人员节点。

对于资料下的每个节点(名称,电话,电子邮件,区域,城市)

 el.getElementsByTagName("name").item(0).getTextContent();

el.getElementsByTagName("name")
会在“东西”下提取“名称”节点,为
.item(0)
您提供第一个节点,并
.getTextContent()
在其中获取文本内容。

编辑: 由于我们有杰克逊,所以我将以其他方式进行。为对象定义一个pojo:

public class Staff {    private String name;    private String phone;    private String email;    private String area;    private String city;...getters setters}

然后使用杰克逊:

    JsonNode root = new XmlMapper().readTree(xml.getBytes());    ObjectMapper mapper = new ObjectMapper();    root.forEach(node -> consume(node, mapper));private void consume(JsonNode node, ObjectMapper mapper) {    try {        Staff staff = mapper.treeToValue(node, Staff.class);        //TODO your job with staff    } catch (JsonProcessingException e) {        e.printStackTrace();    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/469969.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号