操作XML文档的并返回(数组)

 

经过第二周,本周需要作的是基于XML的数据倒入,刚开始完全不了解思路,询问了一下老师,老师指导需要从XML中获得Excel标题行与数据库字段的关系,然后通过此关系导入。

下面是读取当前工程中的XML获得了Excel的标题行的字符串数组,和数据库表字段名成的数组,不知道思路对不,(主要是操作XML)。。之后通过这个对应关系取代if,估计只是最简单的XML实现,之后还有更加详细。

XML如下:

<?xml version="1.0" encoding="utf-8"?>

<mapping>

    <property name="学号">

       <column name="xh" />

    </property>

    <property name="姓名">

       <column name="xm"/>

    </property>

    <property name="性别">

       <column name="xb" />

    </property>

    <property name="出生时间">

       <column name="cssj"/>

    </property>

    <property name="专业号">

       <column name="zy_id"/>

    </property>

    <property name="学分">

       <column name="zxf" />

    </property>

    <property name="备注">

       <column name="bz"/>

    </property>  

</mapping>

 

java主类:

import java.io.File;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;

import org.w3c.dom.Element;

import org.w3c.dom.Node;

import org.w3c.dom.NodeList;

public class XmlMain {

 

    /**

     * @param args

     */

    public static void main(String[] args) {

       // TODO Auto-generated method stub

       try {

 

           DocumentBuilderFactory factory = DocumentBuilderFactory

                  .newInstance();

 

           DocumentBuilder builder = factory.newDocumentBuilder();

 

           Document document = builder.parse(new File("src/ExcelXml.xml"));

 

           String version = document.getXmlVersion();

 

           String encoding = document.getXmlEncoding();

 

           System.out.println(version);

 

           System.out.println(encoding);

           Element root = document.getDocumentElement();

          

           String rootName = root.getNodeName();

 

           System.out.println("XML根节点的名称为: " + rootName);

 

           NodeList nodelist = document.getElementsByTagName("property"); // 获取节点的集合

   

           int size = nodelist.getLength();

           String xls[]=new String[size];

           String db[]=new String[size];

           for (int i = 0; i < size; i++) {

 

              Node node = nodelist.item(i); // 获取节点

             

              String name = node.getNodeName();

              //NamedNodeMap attributes = node.getAttributes();

              String nodeValue = node.getAttributes().getNamedItem("name").getNodeValue();           

              xls[i]=nodeValue;

              //node.getNodeName().equals("column");

              String nodeValue2 = node.getFirstChild().getNextSibling().getAttributes().getNamedItem("name").getNodeValue();

              db[i]=nodeValue2;

              System.out.println(name);

              System.out.println("xsl["+i+"]="+xls[i]);

              System.out.println("db["+i+"]="+db[i]);             

           }

       }

 

       catch (Exception e) {

 

           System.out.println(e);

 

       }

 

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值