【JAVA与C#比较】XML操作

1.java中关于xml文件的操作,系统没有自带相关操作功能,需要下载相关组件,例如Dom、JDom、Dom4J等等。而C#使用的基本环境中的.net 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 = saxReader.read("filepath");
//或者Element content = (XmlElement)document.getRootElement().selectSingleNode("/Content");
Element content = document.getRootElement().element("Content");
Attribute attr = content.attribute("leader");
attrMap.put(attr.getName(), attr.getValue());      //获取属性内容
XmlDocument document = new XmlDocument();
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("Peoples.xml");
    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("Peoples.xml");                       //保存文件    



猜你喜欢

转载自blog.csdn.net/u014650759/article/details/79464629