我的xml为:<?xml version="1.0" encoding="UTF-8" ?>
<data>
<entcode>企业代码</entcode>
<users_info>
<user id="liufei" mode="01">
<isadmin>是否企业管理员</isadmin>
<password>帐户口令</password>
<name>员工姓名</name>
<email>邮件地址</email>
</user>
<user id="zanghui" mode="01">
<isadmin>是否企业管理员</isadmin>
<password>帐户口令</password>
<name>员工姓名</name>
<email>邮件地址</email>
</user>
</users_info>
</data> 我的解析代码为:
package com.sitech.cic.edsmp.syninformationoperater.changeBasicNotify;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
/**
* 读取模版xml文件的类
* @author TanChao
* 下面是xml的例子
*<?xml version="1.0" encoding="GBK"?>
*<stencils>
* <stencil id="001">
* <name>激情模版</name>
* <authorName>网站默认</authorName>
* <authorId>000000</authorId>
* <scope>1</scope>
* <state>0</state>
* </stencil>
*</stencils>
*/
public class changeBasicNotifyXml{
private static String[][] XZZstencilsXML;
private static String[][] GZSstencilsXML;
public static String[][] getXZZStenclisXML(){
if (XZZstencilsXML!=null) return XZZstencilsXML;
XZZstencilsXML=changeBasicNotifyXml.getXml("D:\\workspace\\DIYManageSOAP\\src\\test\\contents1.xml");
return XZZstencilsXML;
} public static String[][] getGZSStenclisXML(){
if (GZSstencilsXML!=null) return GZSstencilsXML;
GZSstencilsXML=changeBasicNotifyXml.getXml("D:\\workspace\\DIYManageSOAP\\src\\test\\contents1.xml");
return GZSstencilsXML;
}
private changeBasicNotifyXml(){}
private static String[][] getXml(String file){
List list=new ArrayList();
DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance();
try {
DocumentBuilder dombuilder=domfac.newDocumentBuilder();
InputStream is=new FileInputStream(file);
Document doc=dombuilder.parse(is);
Element root=doc.getDocumentElement();//获得Root元素
NodeList stencils=root.getChildNodes(); //获得Root元素的子节点列表
NodeList stencils1=doc.getElementsByTagName("user");
if(stencils1!=null){
for(int i=0;i<stencils1.getLength();i++){
Node user=stencils1.item(i);
if(user.getNodeType()==Node.ELEMENT_NODE){
String[] temp=new String[6];
String id1=user.getAttributes().getNamedItem("id").getNodeValue();
temp[0]=id1;
for(Node node=user.getFirstChild();node!=null;node=node.getNextSibling()){
if(node.getNodeType()==Node.ELEMENT_NODE){
if(node.getNodeName().equals("isadmin")){
String isadmin=node.getFirstChild().getNodeValue();
temp[1]=isadmin;
}
if(node.getNodeName().equals("password")){
String password=node.getFirstChild().getNodeValue();
temp[2]=password;
}
if(node.getNodeName().equals("name")){
String name=node.getFirstChild().getNodeValue();
temp[3]=name;
}
if(node.getNodeName().equals("email")){
String email=node.getFirstChild().getNodeValue();
temp[4]=email;
}
}
}
list.add(temp);
}
}
}
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
String[][] result=new String[list.size()][6];
for (int i=0;i<list.size();i++){
String[] temp=(String[])list.get(i);
for (int j=0;j<6;j++){
result[i][j]=temp[j];
}
}
return result;
}
public static void main(String[] args) {
String[][] s=changeBasicNotifyXml.getGZSStenclisXML();
for (int i=0;i<s.length;i++){
System.out.println("id="+s[i][0]);
System.out.println("\t isadmin="+s[i][1]);
System.out.println("\t password="+s[i][2]);
System.out.println("\t name="+s[i][3]);
System.out.println("\t email="+s[i][4]);
}
}
}
问题:现在打印结果为id=liufei
isadmin=是否企业管理员
password=帐户口令
name=员工姓名
email=邮件地址
id=zanghui
isadmin=是否企业管理员
password=帐户口令
name=员工姓名
email=邮件地址
我现在想把<entcode>企业代码</entcode>放在打印结果的第一行中,怎么添加这个代码啊,我不太熟悉,感觉应该不难把。
<data>
<entcode>企业代码</entcode>
<users_info>
<user id="liufei" mode="01">
<isadmin>是否企业管理员</isadmin>
<password>帐户口令</password>
<name>员工姓名</name>
<email>邮件地址</email>
</user>
<user id="zanghui" mode="01">
<isadmin>是否企业管理员</isadmin>
<password>帐户口令</password>
<name>员工姓名</name>
<email>邮件地址</email>
</user>
</users_info>
</data> 我的解析代码为:
package com.sitech.cic.edsmp.syninformationoperater.changeBasicNotify;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
/**
* 读取模版xml文件的类
* @author TanChao
* 下面是xml的例子
*<?xml version="1.0" encoding="GBK"?>
*<stencils>
* <stencil id="001">
* <name>激情模版</name>
* <authorName>网站默认</authorName>
* <authorId>000000</authorId>
* <scope>1</scope>
* <state>0</state>
* </stencil>
*</stencils>
*/
public class changeBasicNotifyXml{
private static String[][] XZZstencilsXML;
private static String[][] GZSstencilsXML;
public static String[][] getXZZStenclisXML(){
if (XZZstencilsXML!=null) return XZZstencilsXML;
XZZstencilsXML=changeBasicNotifyXml.getXml("D:\\workspace\\DIYManageSOAP\\src\\test\\contents1.xml");
return XZZstencilsXML;
} public static String[][] getGZSStenclisXML(){
if (GZSstencilsXML!=null) return GZSstencilsXML;
GZSstencilsXML=changeBasicNotifyXml.getXml("D:\\workspace\\DIYManageSOAP\\src\\test\\contents1.xml");
return GZSstencilsXML;
}
private changeBasicNotifyXml(){}
private static String[][] getXml(String file){
List list=new ArrayList();
DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance();
try {
DocumentBuilder dombuilder=domfac.newDocumentBuilder();
InputStream is=new FileInputStream(file);
Document doc=dombuilder.parse(is);
Element root=doc.getDocumentElement();//获得Root元素
NodeList stencils=root.getChildNodes(); //获得Root元素的子节点列表
NodeList stencils1=doc.getElementsByTagName("user");
if(stencils1!=null){
for(int i=0;i<stencils1.getLength();i++){
Node user=stencils1.item(i);
if(user.getNodeType()==Node.ELEMENT_NODE){
String[] temp=new String[6];
String id1=user.getAttributes().getNamedItem("id").getNodeValue();
temp[0]=id1;
for(Node node=user.getFirstChild();node!=null;node=node.getNextSibling()){
if(node.getNodeType()==Node.ELEMENT_NODE){
if(node.getNodeName().equals("isadmin")){
String isadmin=node.getFirstChild().getNodeValue();
temp[1]=isadmin;
}
if(node.getNodeName().equals("password")){
String password=node.getFirstChild().getNodeValue();
temp[2]=password;
}
if(node.getNodeName().equals("name")){
String name=node.getFirstChild().getNodeValue();
temp[3]=name;
}
if(node.getNodeName().equals("email")){
String email=node.getFirstChild().getNodeValue();
temp[4]=email;
}
}
}
list.add(temp);
}
}
}
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
String[][] result=new String[list.size()][6];
for (int i=0;i<list.size();i++){
String[] temp=(String[])list.get(i);
for (int j=0;j<6;j++){
result[i][j]=temp[j];
}
}
return result;
}
public static void main(String[] args) {
String[][] s=changeBasicNotifyXml.getGZSStenclisXML();
for (int i=0;i<s.length;i++){
System.out.println("id="+s[i][0]);
System.out.println("\t isadmin="+s[i][1]);
System.out.println("\t password="+s[i][2]);
System.out.println("\t name="+s[i][3]);
System.out.println("\t email="+s[i][4]);
}
}
}
问题:现在打印结果为id=liufei
isadmin=是否企业管理员
password=帐户口令
name=员工姓名
email=邮件地址
id=zanghui
isadmin=是否企业管理员
password=帐户口令
name=员工姓名
email=邮件地址
我现在想把<entcode>企业代码</entcode>放在打印结果的第一行中,怎么添加这个代码啊,我不太熟悉,感觉应该不难把。
解决方案 »
- myeclipse10和tomcat6.0导入项目后JS代码里不能用c标签
- 是不是电信的问题???????????????????
- 新手上路:jdbc连接sql server数据库问题
- 哪里有可用的前台页面模板struts的最好
- 问一个很基本的问题:在Tomcat5.5下如何配置一个servlet?
- 有关jspsmartupload上传组件封装的问题求救?
- 在tomcat4.1 或5.0种怎么可以直接打开servlet
- 求助乱码问题
- myfunction(config,request,response);能这样传递参数给java 的一个函数吗???
- jsp的邮件的发送实现了,请教高手接受邮件的源代码?急!
- 求高手帮忙下关于Hibernate的hql语句返回list的问题
- 问个有关设置网站首页的问题
你这里是从user标签开始解析的,你把它变成NodeList stencils1=doc.getElementsByTagName("data"); 之后内部代码可能也是需要更改,
if(codeList!=null){
for(int i=0;i <codeList.getLength();i++){
Node user=codeList.item(i);
if(user.getNodeType()==Node.ELEMENT_NODE)
{
String id1=user.getTextContent();
System.out.println(id1);
System.out.println("");
}
}
}这块加在NodeList stencils1=doc.getElementsByTagName("user");
if(stencils1!=null){
for(int i=0;i <stencils1.getLength();i++){
Node user=stencils1.item(i);
if(user.getNodeType()==Node.ELEMENT_NODE){
String[] temp=new String[6]; 这段之前