用三种语言实现对xml文件的解析

如果看到了这个贴子,那大家基本都认识吧? 作业。话不多说直接看吧,这是我个人做完后的一些总结

C# 实现对xml文件的解析

public static void XmlDOM()
{
            //定义一个可以接受字典的列表
            List<Dictionary<string, string>> list = new List<Dictionary<string, string>();
            XmlDocument xmlDoc = new XmlDocument();//定义一个XmlDocument 的对象
            xmlDoc.Load(@"..\..\demo.xml"); //导入xml文件,这里使用了相对路径且xml文件与此程序在同级目录下
                         
            XmlNode root = xmlDoc.SelectSingleNode("你xml文件的根节点");//获取根节点
            
            XmlNodeList nodeList = root.ChildNodes;//获取根节点下的子节点
            //遍历所有子节点
            foreach (XmlNode xn in nodeList)
            {
                XmlElement xe = (XmlElement)xn;
                XmlNodeList subList = xe.ChildNodes;//获取子节点下的子节点反正是这个意思
                //定义一个字典用来存储每个子节点下的值
                Dictionary<string, string> map = new Dictionary<string, string>();
                foreach (XmlNode xmlNode in subList)//遍历子节点
                {
                    map.Add(xmlNode.Name, xmlNode.InnerText);//获取子节点名称和值 InnerText 包含索引文本内容
                }
                list.Add(map);//存入list
            
            }
            
}

 注:C#解析xml文件的时候需要添加应用

        using System.Xml;

JAVA 实现对xml文件的解析

//解析xml
    public static void readXml() {

        try {
            //创建接收hashmap的集合
            ArrayList<HashMap<String, String>> list = new ArrayList<>();
            // 创建SAXReader对象
            SAXReader reader = new SAXReader();
            // 加载xml文件此处也使用了相对路径
            Document dc = reader.read("src/main/demo.xml");
            // 获取根节点
            Element e = dc.getRootElement();
            // 获取迭代器
            Iterator<Element> it = e.elementIterator();
            // 遍历迭代器,获取根节点信息
            while (it.hasNext()) {
                Element book = it.next();
                Iterator<Element> itt = book.elementIterator();
                HashMap<String, String> map = new HashMap<>();
                while (itt.hasNext()) {
                    Element b = itt.next();
                    map.put(b.getName(), b.getText());//向hashmap中存储节点名称和值
                }
                list.add(map);//存入list
            }
    
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }

    }

 注:JAVA的引用比较麻烦需要导入jar包 

        dom4j .jar下载

        提取码:nuer

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

         java中所需的引入,如果你用的IDEA当我没说

        怎么导入jar包自行百度,如果用创建的是 maven 项目就不用这么麻烦了

Python 实现对xml文件的解析

        相较于前两种,python相对更简单一点,我个人也比较倾向于这一种

import xml.etree.ElementTree as ET




# 解析xml
# 使用elementtree解析xml
def xmlanalysis():
    tree = ET.parse('demo.xml') #这里用了相对路径
    root = tree.getroot() # 获取根节点
    l1 = [] # 创建一个列表用来存储字典
    for child in root:  # 遍历子节点
        d1 = {} # 创建一个字典接收节点值和节点名称
        for tochild in child:  # 遍历子节点下的元素
            d1[tochild.tag] = tochild.text  # 并将其存入字典
        l1.append(d1) # 存入list
    print("解析成功")





总结:

        C#和JAVA相比二者的对xml的解析有着异曲同工之妙,但是JAVA相较于C# 他对xml文件的解析不用说根节点 ,可重用性更强。

        Python 不管是和C#比还是和JAVA比 在解析 xml 文件上 Pyhon 实现的方式更简洁 ,可重用性强,也不用像JAVA一样下载jar包

        注:这里每种语言读取xml文件都使用了相对路径

        如果对你有用点个关注

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值