谁能提供个思路给我,怎么解析“带注释的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();
}
}
解决方案 »
- iReport 分组报表
- 到底要多大,你才满意?
- 一个判断的业务逻辑,不会写了,请帮忙
- [JAVA] org.hibernate.util.JDBCExceptionReporter 无法转换为内部表示
- 谁有SSH写的论坛程序,有的发一份 或者说哪个论坛程序有的下的
- http https转换 sessionid问题
- commons-fileupload的关于路径的问题
- jsp写出文件
- 请高手指教class打成jar文件后的jdbc问题...
- SSM/Spring5MVC/Spring5/MyBatis/超详细整合(2)
- 如何对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>