日期:2014-05-20  浏览次数:20894 次

求助!!XML基础!我考不过完蛋了!!
求助啊!!考试题目,过不过我死了!!我不会XML啊,哪个高手帮帮我!!加我QQ114483971,真心求助啊!!!





————————————————————————————————————————————————————————
题目:一、将下面的XML文档,按如下格式输出。(30分)

<?xml version="1.0" encoding="gb2312"?>
<newCD>
<CD>
<title>红蔷薇</title>
<歌手>萧亚轩<歌手>
<song>一个人的精彩</song>
<song>蔷薇</song>
<song>夜</song>
</CD>
<cd>
<title>真爱无敌</title>
<歌手>许茹芸<歌手>
<song>真爱无敌</song>
<song>埚牛</song>
<song>恒星</song>
</cd>
</newCD>


 


二、按下列格式尾XML文档建立相应的XLST文档。
<?>xml version=”1.0” encoding=”gb2312”?>
<CD信息>
<CD>
  <代号>GO11105</代号>
<专辑名>关不住</专辑名>
<歌手>伊能静</歌手>
<发行日期>2001.7</发行日期>
<定价>17.00</定价>
</CD>
<CD>
  <代号>Q031103</代号>
<专辑名>Suddenly,this Summer</专辑名>
<歌手>梁咏琪</歌手>
<发行日期>2001.6<发行日期>
<定价 dt:dt=”number”>19.50</定价>
</CD>
<CD>
  <代号>s023205</代号>
<专辑名>Very Best of Yanni</专辑名>
<歌手>Yanni</歌手>
<发行日期>2001.4<发行日期>
<定价 dt:dt=”number”>18.00</定价>
</CD>
<CD>
  <代号>K081101</代号>
<专辑名>Love Songs</专辑名>
<歌手>Michael Bolton</歌手>
<发行日期>2001.3<发行日期>
<定价 dt:dt=”number”>111.00</定价>
</CD>
<CD信息>

代号 专辑名 歌手 发行日期 定价
G011105 关不住 伊能静 2001.7 17.00
Q031103 Suddenly,this Summer 梁泳琪 2001.6 19.50
S023205 Very Best of Yanni Yanni 2001.4 18.00
K081101 Love Songs Michael Bolton 2001.3 111.00

三、编写程序将下列数据库表转换为XML文档;

ID NAME AGE HAB PHONE
2006234 张威 23 电脑,音乐 3456433
2006235 刘模 21 艺术 5677644
2006236 王民 22 艺术 3567677

对应XML文档为:
<?xml version="1.0" encoding="UTF—8"?>
<students>
<student>
  <学号>2006234〈/学号〉
  <姓名>张威</姓名>
  <年龄>23</年龄>
  <爱好>电脑,音乐</爱好>
  <电话>3456433</电话>
</student>
<student>
  <学号>2006235〈/学号〉
  <姓名>刘模</姓名>
  <年龄>21</年龄>
  <爱好>艺术</爱好>
  <电话>5677644</电话>
</student>
<student>
  <学号>2006236〈/学号〉
  <姓名>王民</姓名>
  <年龄>22</年龄>
  <爱好>艺术</爱好>
  <电话>3567677</电话>
</student>
</students>


------解决方案--------------------
写一下这个吧
三、编写程序将下列数据库表转换为XML文档;
Java code

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

public class TestXML {
    
    private static final Logger log = Logger.getLogger(TestXML.class.getName());
    
    public TestXML(){
        super();
    }
    
    /**
     * 构造制定格式的xml
     * @param list
     * @return
     */
    public Document createXML(List list){
        Document document = DocumentHelper.createDocument();
        Element students = document.addElement("students");//根节点 students
        for(int i =0 ;i<list.size() ;i++){
            StudentsInforBean bean = new StudentsInforBean();
            bean = (StudentsInforBean)list.get(i);
            Element student = students.addElement("student"); //子节点 student
            student.addElement("学号").setText(deNull(bean.getId())); 
            student.addElement("姓名").setText(deNull(bean.getName()));
            student.addElement("年龄").setText(String.valueOf(bean.getAge()));
            student.addElement("爱好").setText(deNull(bean.getHab()));
            student.addElement("电话").setText(deNull(bean.getPhone()));
        }
        return document;
    }
    /**
     * 生成xml文件
     * @param document
     * @param filename xml文件的完整路径,包括后缀名
     * @throws Exception
     */
    public void writeXML(Document document ,String filename) throws Exception{
        try {
            OutputFormat format = OutputFormat.createPrettyPrint();
            format.setEncoding("UTF—8");//这个地方是按你题目要求生成的xml编码格式,生成的xml文件用IE打开会有问题,如果换成gb2312的编码就不会有问题
            XMLWriter writer = new XMLWriter(new FileWriter(new File(filename)),format); 
            writer.write(document);
            writer.close(); 
        } catch (IOException e) {
            log.error(e.getMessage());
            throw new Exception("writeXML Exception:"+e.getMessage());
        }
    }
    /**
     * 过滤为null的值
     * @param str
     * @return
     */
    private  String deNull(String str) {
        if (str == null) {
            return "";
        }
        return str;
    }
    
    
    public static void main(String args[]) throws Exception{
        List list = new ArrayList();
        StudentsInforBean bean1 = new StudentsInforBean();
        bean1.setId("2006234");
        bean1.setName("张威");
        bean1.setAge(23);
        bean1.setHab("电脑,音乐");
        bean1.setPhone("3456433");
        StudentsInforBean bean2 = new StudentsInforBean();
        bean2.setId("2006235");
        bean2.setName("刘模");
        bean2.setAge(21);
        bean2.setHab("艺术");
        bean2.setPhone("5677644");
        StudentsInforBean bean3 = new StudentsInforBean();
        bean3.setId("2006236");
        bean3.setName("王民");
        bean3.setAge(22);
        bean3.setHab("艺术");
        bean3.setPhone("3567677");
        list.add(bean1);
        list.add(bean2);
        list.add(bean3);
        //TODO 以上数据的获取,你可以用自己的方法把数据从你对应的数据库表获取
        TestXML testXML = new TestXML();
        Document document = testXML.createXML(list);
        testXML.writeXML(document, "d://test.xml");
    }
}

//数据bean
public class StudentsInforBean implements java.io.Serializable{
    
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    
    private String id;
    private String name;
    private int age;
    private String hab;
    private String phone;
    
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getHab() {
        return hab;
    }
    public void setHab(String hab) {
        this.hab = hab;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }    
}