1. JAVA如何写XML文件
呵呵,你这个问题,其实写XML很简单的,氛围以下几步:
1.导入DOM4J包,在此我使用dom4j来做。
2.创建dom4j的实例:Document document = DocumentHelper.createDocument();
3.一级一级的添加节点或者属性,这个具体参照dom4j帮助:
Element rootGen = document.addElement("root");
4.定义以下3个对象,然后进行操作:
Writer writer = null;
OutputFormat format = null;
XMLWriter xmlwriter = null;
***********************************************************************************
附上代码:
public void CreateXMl(StudentBean sn){
//创建document对象
Document document = DocumentHelper.createDocument();
//定义根节点Element
Element rootGen = document.addElement("root");
//定义根节点ROOT的子节点们
Element nameGen = rootGen.addElement("Name");
nameGen.addAttribute("name", "我是中文");
Element ageGen = rootGen.addElement("Age");
Element addrGen = rootGen.addElement("Address");
Writer writer = null;
OutputFormat format = null;
XMLWriter xmlwriter = null;
//将定义好的内容写入xml文件中
try {
//使用这个writer也可以,只不过遇到中文会乱码哦
// writer = new FileWriter("d:/test.xml");
//进行格式化
format = OutputFormat.createPrettyPrint();
//设定编码
format.setEncoding("UTF-8");
xmlwriter = new XMLWriter(new FileOutputStream("d:/test.xml"), format);
xmlwriter.write(document);
xmlwriter.flush();
xmlwriter.close();
System.out.println("-----------Xmlfile successfully created-------------");
} catch (Exception e) {
e.printStackTrace();
System.out.println("-----------Exception occured during of create xmlfile -------");
}
}
2. 如何制作xml文件
xml文件和html文件一样,实际上是一个文本文件 它没有标签集(tag set),也没有语法规则(grammatical rule),但是它有句法规则(syntax rule)。
任何XML文档对任何类型的应用以及正确的解析都必须是良构的(well-formed),即每一个打开的标签都必须有匹配的结束标签,不得含有次序颠倒的标签,并且在语句构成上应符合技术规范的要求。例如:<?> <待解决> <问题>如何制作XML文件问题> 待解决>注意:标签要成对出现,而且区分大小写。
3. 怎么用C语言写一个简单的XML文件
用VC吧,下面有一个例子,你参照下:void CreateXml() { CoInitialize(NULL); // 创建文档 MSXML2::IXMLDOMDocument2Ptr pXMLDoc = NULL; //创建DOMDocument对象 HRESULT hr = pXMLDoc.CreateInstance(__uuidof(MSXML2::DOMDocument)); if (!SUCCEEDED(hr)) { return; } // Create the Processing Instruction MSXML2::IXMLDOMProcessingInstructionPtr pXMLProc = NULL; pXMLProc = pXMLDoc->createProcessingInstruction("xml", "version='1.0' encoding='UTF-8'"); _variant_t vNullVal; vNullVal.vt = VT_NULL; pXMLDoc->insertBefore(pXMLProc, vNullVal); // 创建根结点 _variant_t varNodeType((short)MSXML2::NODE_ELEMENT); MSXML2::IXMLDOMNodePtr pXMLNodeRoot= NULL; pXMLNodeRoot = pXMLDoc->createNode(varNodeType, _T("Cases"), _T("")); // 添加根结点 pXMLDoc->appendChild(pXMLNodeRoot); // 创建并添加下级结点 MSXML2::IXMLDOMNodePtr pXMLNodeNode= NULL; pXMLNodeNode = pXMLNodeRoot->appendChild(pXMLDoc->createElement(_T("Case"))); // 创建下级元素结点 MSXML2::IXMLDOMElementPtr pXMLEle = NULL; pXMLEle = pXMLDoc->createElement(_T("CopyFile")); // 创建并设置下级结点属性 MSXML2::IXMLDOMAttributePtr pXMLAttr = NULL; pXMLAttr = pXMLDoc->createAttribute(_T("src")); pXMLAttr->nodeTypedValue = "C:\\test.txt"; pXMLEle->attributes->setNamedItem(pXMLAttr); pXMLAttr = pXMLDoc->createAttribute(_T("dest")); pXMLAttr->nodeTypedValue = "D:\\Test.txt"; pXMLEle->attributes->setNamedItem(pXMLAttr); // 添加元素结点 pXMLNodeNode->appendChild( pXMLEle); MSXML2::IXMLDOMElementPtr pXMLEle1 = NULL; pXMLEle1 = pXMLDoc->createElement(_T("DelFile")); pXMLEle1->appendChild(pXMLDoc->createTextNode("C:\\test.txt")); // 添加元素结点 pXMLNodeNode->appendChild( pXMLEle1); // 保存文档 pXMLDoc->save(_T("d:\\Test.xml")); } 效果如下:<?xml version="1.0" encoding="UTF-8" ?>
4. xml文件如何编辑
这一部分还是不能照原文翻译,下面有些内容是我自己写的)为了让你的解析器能够明白这些字符,你必须在XML文档中统一的字符编码标准。--------------------------------------------------------------------------------Windows 95/98 记事本
Windows 95/98 记事本不能以Unicode的编码格式保存文件。可以使用记事本来编辑和保存包含了外文字符的XML文档 (比如:挪威语或者法语或者中文)小奀小林晚上一起去火锅呀但是如果你用浏览器打开这个用记事本编辑过的XML文档,将会出现一个错误。--------------------------------------------------------------------------------在Windows 95/98 记事本中使用编码
Windows 95/98 记事本编辑XML文件必须进行编码属性设置。 为了避免发生错误,可以在XML文档声明中加上一个encoding属性,指明此XML文档的编码类型,但是不要使用Unicode编码。 下面的编码类型不会导致错误,, 并且汉字显示正常:下面的编码类型不会导致错误,, 并且汉字显示正常:下面的编码类型不会导致错误,, 并且汉字显示不正常(乱码):下面的编码类型不会导致错误,, 并且汉字显示不正常(乱码):下面的编码类型不会导致错误,,并且汉字显示正常:下面的编码类型会导致错误,:--------------------------------------------------------------------------------使用Windows 2000 记事本
Windows 2000 记事本可以以Unicode编码格式保存文件。Windows 2000 的记事本支持Unicode字符集。如果使用Win2000的记事本以Unicode的编码格式保存XML文档(请注意这里在XML声明中没有编码信息):小奀小林晚上一起去火锅呀--------------------------------------------------------------------------------Windows 2000 记事本编码
Windows 2000记事本还可以以"UTF-16"编码格式保存文件。如果你在XML文档中声明了编码属性而又以Unicode编码格式保存文件,将可能发生错误。下面的代码将会导致错误:下面的代码将会导致错误:下面的代码将会导致错误:下面这个文件; note_encode_utf16_u.xml, 将会在IE5.0+中显示正常,在网景Netscape 6.2浏览器中将会出现错误。--------------------------------------------------------------------------------错误信息
当时用IE5.0或者更高版本浏览XML文档时,可能会遇到两中不同的编码错误:在文本内容中发现一个非法字符(An invalid character was found in text content)。如果你的XML文档和你的XML文档的编码格式不匹配就可能导致错误发生。通常情况是,XML文档包含一些“非英文”字符,并且使用了单字节编码的编辑器,而且没有在XML文档的声明中设置XML文档的编码格式。 不支持从当前的编码格式转换成另一种编码格式(Switch from current encoding to specified encoding not supported)。如果XML文档以Unicode/UTF-16编码格式保存,但是XML文档的声明中却设置了编码格式是一些单字节的编码(比如 Windows-1252, ISO-8859-1 或者 UTF-8);或者XML文档以单字节编码格式保存,但是XML文档的声明中却设置了编码格式是一些Unicode/UTF-16的编码形式,这样两种情况都会导致错误发生。--------------------------------------------------------------------------------结论
结论:在保存XML文档之前在XML文档的声明中设置文档的编码格式,我的一些关于避免错误发生的建议:使用一种支持Unicode编码格式的编辑器。
确信你知道自己正在使用那种编码格式。
5. java怎么读写xml文件
谁说不自带的rt.jar就是啊 1.接口 /** * */package com.huawei.liyong.interfaces; import java.util.Map; /** * @author Administrator */public interface OperateTool{ /** * 解析XML */ Map
6. java怎么读写xml文件
public List<Student> doReadXML(String path) throws Exception {
List<Student> empvoList = new ArrayList<Student>();
File file = new File(path);
//输入流对象
FileInputStream fis = new FileInputStream(file);
//jdom解析器
SAXBuilder sb = new SAXBuilder();
Document doc= sb.build(fis);
//获得XML的根元素
Element root = doc.getRootElement();
//获得根元素下的所有子元素
List<Element> employees = root.getChildren();
for(int i=0;i<employees.size();i++){
Element employee =employees.get(i);
Student stu= new Student();
String name = employee.getChildText("name");
String sex = employee.getChildText("sex");
String agetemp = employee.getChildText("age");
String home = employee.getChildText("home");
String email = employee.getChildText("email");
stu.setName(name);
stu.setSex(sex);
int age = 0;
if(agetemp.equals("")){
age = 0;
} else {
age = Integer.parseInt(agetemp);
}
stu.setAge(age);
stu.setHome(home);
stu.setEmail(email);
System.out.println(name+"\t"+i);
empvoList.add(stu);
}
return empvoList;
}