【JAVA与C#⽐较】XML操作
1.java中关于xml⽂件的操作,系统没有⾃带相关操作功能,需要下载相关组件,例如Dom、JDom、Dom4J等等。⽽C#使⽤的基本环境中的 framwork,是⾃带相关功能的。以下内容java以Dom4J插件做⽐较。
2.java中创建解析的对象为SAXReader,C#中是XmlDocment。java还需要⽣成对应⽂档实体,以便操作⾥⾯节点,C#解析对象加载⽂件后直接操作⾥⾯节点。java中xml对象⾥⾯的Element既可以作为节点,也可以作为元素,⽽在C#中节点是XmlNode,元素是XmlElement。下⾯简单代码⽰例读写XML⽂档区别:
HashMap attrMap = new HashMap<String,String>();
SAXReader saxReader = new SAXReader();
Document document = ad("filepath");
//或者Element content = (RootElement().selectSingleNode("/Content");
Element content = RootElement().element("Content");
Attribute attr = content.attribute("leader");
attrMap.Name(), Value()); //获取属性内容
XmlDocument document = new XmlDocument();
java xml是什么document.Load("filepath");
XmlElement content = (XmlElement)document.DocumentElement.SelectSingleNode("Content");
string nameStr = content.GetAttribute("leader"); //获取属性内容
需要补充⼀点的是,元素必须是含有完整信息的节点才是⼀个元素,⼀个XML元素是由开始标签、结束标签以及标签之间的数据构成的。所以元素可以设置属性,节点不⾏。
3.java中创建xml对象为DocumentFactory,C#中依然是XmlDocment。java中添加⽤addElement,C#中⽤AppendChild,其它包括添加注释、设置特性、设置内容都存在⽅法名称的区别。还有⼀点不同是,java保存⽂件需要通过⽂件处理类来实现,⽽在C#中可以直接通过xml对象保存⽂件。简单代码⽰例读创建XML⽂档区别:
DocumentFactory f = new DocumentFactory();
Document doc = f.createDocument();
doc.addComment("信息xml⽂件"); //设置注释信息
Element root = doc.addElement("peoples");//设置根元素
Element pl = root.addElement("Content"); //为根对象设置⼦元素
pl.addAttribute("pid","1"); //设置⼦元素的属性
pl.setText("zhangsan"); //设置⼦元素内容
try{
OutputFormat format = new OutputFormat();
format.setEncoding("utf-8"); //输⼊的编码格式
format.setIndent(true); //输⼊是否缩进
format.setIndent(" "); //输⼊缩进的间距
format.setNewlines(true); //换⾏输出
format.setSuppressDeclaration(true);
OutputStream os = new FileOutputStream("l");
XMLWriter writer = new XMLWriter(os,format);//设置输出流的格式
writer.write(doc); //输出doc内容
writer.close(); //关闭资源
os.close(); //关闭资源
}catch(Exception e){
e.printStackTrace();
}
XmlDocument xmlDoc = new XmlDocument(); //Xml⽂档对象
XmlDeclaration xmlDec = xmlDoc.CreateXmlDeclaration("1.0","UTF-8",null);//创建Xml声明xmlDoc.AppendChild(xmlDec); //添加声明
xmlDoc.CreateComment("信息xml⽂件"); //设置注释信息
XmlElement sec1 = xmlDoc.CreateElement("peoples");//创建根元素
xmlDoc.AppendChild(sec1); //添加根元素
xmlNode chap1 = xmlDoc.CreateElement("kaifa"); //创建⼆级节点
sec1.AppendChild(chap1); //添加⼆级节点
XmlElement ex1 = xmlDoc.CreateElement("name"); //创建三级节点
ex1.SetAttribute("ID","1"); //设置属性
ex1.InnerText = "zhangsan"; //设置内容
chap1.AppendChild(ex1); //添加到⼆级节点
xmlDoc.Sava("l"); //保存⽂件
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论