谁能提供个思路给我,怎么解析“带注释的XML”例如:<!-- 财务数据的导入-->
<?xml version="1.0" encoding="GBK"?>
<Excel>
<table>
<tablename>Table1</tablename>
<field>
<!-- 字段field1-->
<tablename name="field1" />
<!-- 字段field2-->
<tablename name="field2" />
</field>
</table>
<table>
<tablename>Table1</tablename>
<field>
<!-- 字段field1-->
<tablename name="field1" />
<!-- 字段field2-->
<tablename name="field2" />
</field>
</table>
</Excel>
<!-- 财务数据的导入-->
<!-- 字段field1--> <fieldname name="field1"/>
<!-- 字段field2--> <fieldname name="field2"/>
注意加红的文字。我主要问的是怎么以上面的格式存xml,再怎么读出来。要的是注释。不是节点。
还有发绿的地方要下面这种格式保存
“<!-- 字段field1-->”
“<!-- 字段field2-->”
请问各位,我应该怎么去实现呢?给个思路。在线急等。
我主要用的是jdom解析,导入了四个jar包.jaxen-core.jar,jaxen-jdom.jar,jdom.jar,saxpath.jar当然可以用其他的解析方法。比如,dom4j,sax,dom,或者其他的也可以。
import java.io.FileWriter;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
public class WriteXML {
public static void main(String[] args) throws Exception {
String[] nodes={"Excel","table","tablename","field","fieldname","comment"};
String[] attr={"name"};
Element root = new Element(nodes[0]); //生成根元素
Document doc = new Document(root); //将根元素植入文档doc中
int length=2;
for(int i=0;i<length;i++){
Element table = new Element(nodes[1]);
Element tablename = new Element(nodes[2]);
Element field = new Element(nodes[3]);
table.addContent(tablename.setText("Table1"));
field.addContent("<!-- 字段field1-->");
field.addContent(new Element(nodes[2]).setAttribute(attr[0],"field1"));
field.addContent("<!-- 字段field2-->");
field.addContent(new Element(nodes[2]).setAttribute(attr[0],"field2"));
table.addContent(field);
root.addContent(table);
}
Format format = Format.getCompactFormat();
format.setEncoding("GBK"); //设置XML文件的字符为GBK
format.setIndent(" "); //设置XML文件的缩进为4个空格
XMLOutputter XMLOut = new XMLOutputter(format);//元素后换行一层元素缩四格
//XMLOut.output(doc, new FileOutputStream("excel.xml"));
//XMLOutputter 还可输出到 Writer 或 OutputStream
FileWriter writer = new FileWriter("excel.xml");
writer.write("<!-- 财务数据的导入-->");
String nextLine = System.getProperty("line.separator");
writer.write(nextLine);
XMLOut.output(doc, writer);
writer.close();
}
}
<?xml version="1.0" encoding="GBK"?>
<Excel>
<table>
<tablename>Table1</tablename>
<field>
<!-- 字段field1-->
<tablename name="field1" />
<!-- 字段field2-->
<tablename name="field2" />
</field>
</table>
<table>
<tablename>Table1</tablename>
<field>
<!-- 字段field1-->
<tablename name="field1" />
<!-- 字段field2-->
<tablename name="field2" />
</field>
</table>
</Excel>
<!-- 财务数据的导入-->
<!-- 字段field1--> <fieldname name="field1"/>
<!-- 字段field2--> <fieldname name="field2"/>
注意加红的文字。我主要问的是怎么以上面的格式存xml,再怎么读出来。要的是注释。不是节点。
还有发绿的地方要下面这种格式保存
“<!-- 字段field1-->”
“<!-- 字段field2-->”
请问各位,我应该怎么去实现呢?给个思路。在线急等。
我主要用的是jdom解析,导入了四个jar包.jaxen-core.jar,jaxen-jdom.jar,jdom.jar,saxpath.jar当然可以用其他的解析方法。比如,dom4j,sax,dom,或者其他的也可以。
import java.io.FileWriter;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
public class WriteXML {
public static void main(String[] args) throws Exception {
String[] nodes={"Excel","table","tablename","field","fieldname","comment"};
String[] attr={"name"};
Element root = new Element(nodes[0]); //生成根元素
Document doc = new Document(root); //将根元素植入文档doc中
int length=2;
for(int i=0;i<length;i++){
Element table = new Element(nodes[1]);
Element tablename = new Element(nodes[2]);
Element field = new Element(nodes[3]);
table.addContent(tablename.setText("Table1"));
field.addContent("<!-- 字段field1-->");
field.addContent(new Element(nodes[2]).setAttribute(attr[0],"field1"));
field.addContent("<!-- 字段field2-->");
field.addContent(new Element(nodes[2]).setAttribute(attr[0],"field2"));
table.addContent(field);
root.addContent(table);
}
Format format = Format.getCompactFormat();
format.setEncoding("GBK"); //设置XML文件的字符为GBK
format.setIndent(" "); //设置XML文件的缩进为4个空格
XMLOutputter XMLOut = new XMLOutputter(format);//元素后换行一层元素缩四格
//XMLOut.output(doc, new FileOutputStream("excel.xml"));
//XMLOutputter 还可输出到 Writer 或 OutputStream
FileWriter writer = new FileWriter("excel.xml");
writer.write("<!-- 财务数据的导入-->");
String nextLine = System.getProperty("line.separator");
writer.write(nextLine);
XMLOut.output(doc, writer);
writer.close();
}
}
解决方案 »
- struts2 Convention-plugin 的使用问题
- 大家看一下这个代码为什么不能显示菜单呢?求解...
- hql语句问题!
- james邮件服务器盗用问题
- 请教关于spring的简单问题
- 大家帮我看看hibernate的异常,初学不知道什么原因,谢谢
- 高分请教,我在学习 struts in action 中 有点问题 请教高手!
- hibernate连接SQL2000不能读出Blob
- 在struts-config配置文件里设置的动态Form,如何实现普通Form的reset()功能???
- jboss-3.2.1_tomcat-4.1.24安装!调试!急!
- 如何对excel进行增删改查到数据库中
- Spring-acegi怎么做单点登录?
<!-- 财务数据的导入-->
<?xml version="1.0" encoding="GBK"?>
<Excel>
<table>
<tablename>Table1</tablename>
<field>
<!-- 字段field1--> <tablename name="field1" />
<!-- 字段field2--> <tablename name="field2" />
</field>
</table>
<table>
<tablename>Table1</tablename>
<field>
<!-- 字段field1--> <tablename name="field1" />
<!-- 字段field2--> <tablename name="field2" />
</field>
</table>
</Excel>