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"); //保存文件