如果看到了这个贴子,那大家基本都认识吧? 作业。话不多说直接看吧,这是我个人做完后的一些总结
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包
提取码: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文件都使用了相对路径
如果对你有用点个关注