jdom中使用名字空间的问题

wangsiye 2003-07-28 11:22:47
使用jdom生成xml文档,当父节点声明了一个名字空间,子节点使用相同的名字空间时,jdom好像默认子节点省略该名字空间的声明。现在我想让子节点同样出现该名字空间的声明,有没有什么办法。多谢各位大侠,急~~~~
...全文
51 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangsiye 2003-07-28
  • 打赏
  • 举报
回复
可能是说的不太清楚,我指的不是相同名称的父节点和子节点,而是相同名字空间的元素的名字空间声明问题,举个例子
<?xml version="1.0" encoding="UTF-8" ?>
- <SQ:ATTRIBUTES xmlns:SQ="http://www.mynamespace.com">
- <SQ:HEADER>
<SQ:FILENAME>LordOfRing2.AVI</SQ:FILENAME>
<SQ:FILETYPE>video</SQ:FILETYPE>
<SQ:CONTENTID>OURID</SQ:CONTENTID>
<SQ:STATUS>0</SQ:STATUS>
<SQ:DESCRIPTION>This is the test movie.</SQ:DESCRIPTION>
<SQ:AUTHOR>John Woo</SQ:AUTHOR>
<SQ:OWNER>Jack Chen</SQ:OWNER>
<SQ:CREATEDATE>2003,7,22</SQ:CREATEDATE>
<SQ:THUMBNAIL>twas1_beijing_sell1_Sample.jpg</SQ:THUMBNAIL>
</SQ:HEADER>
</SQ:ATTRIBUTES>
名字空间是SQ, 但是想在每个元素后面都有名字空间的声明xmlns:SQ="http://www.mynamespace.com"
应该怎么做?
biggie 2003-07-28
  • 打赏
  • 举报
回复
支持相同名称父节点和子节点。我刚刚做了个实验,把代码给你,自己参考
/*
* Created on 2003-5-28
*
* CopyRight by HyperNet Systems
* WebSite:http://www.hns-soft.com
*/

import javax.xml.parsers.*;
import java.io.*;
import org.w3c.dom.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.*;
import javax.xml.transform.*;
/**
* @author biggie
* function:生成XML文件
*/
public class xmlTest2 {
public static void main(String args[]){
try{
//获得一个xml解析器
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();

Document doc=builder.newDocument();
//创建
Element root=doc.createElement("catalog");
//将根元素填加上文档
doc.appendChild(root);
//建立book元素
Element book4=doc.createElement("catalog");
book4.setAttribute("id","book"+1);
root.appendChild(book4);
for(int i=0;i<1;i++){
Element book=doc.createElement("book");
book.setAttribute("id","book"+i+1);
root.appendChild(book);
//建立author,title元素
Element author=doc.createElement("author");
book.appendChild(author);
Text tAuthor=doc.createTextNode("飞碟");
author.appendChild(tAuthor);
Element title=doc.createElement("title");
book.appendChild(title);
Text tTitle=doc.createTextNode("飞碟众书");
title.appendChild(tTitle);
//创建publish_date
Element publish_date=doc.createElement("publish_date");
book.appendChild(publish_date);
Element year=doc.createElement("year");
publish_date.appendChild(year);
Text tYear=doc.createTextNode("2003");
year.appendChild(tYear);
Element month=doc.createElement("month");
publish_date.appendChild(month);
Text tMonth=doc.createTextNode("05");
month.appendChild(tMonth);
Element day=doc.createElement("day");
publish_date.appendChild(day);
Text tDay=doc.createTextNode("29");
day.appendChild(tDay);
//创建描述
Element description=doc.createElement("description");
book.appendChild(description);
Text tDescription=doc.createTextNode("一本好书书书书");
description.appendChild(tDescription);
}
Element book2=doc.createElement("aaa");
book2.setAttribute("id","book"+1);
root.appendChild(book2);
Element book3=doc.createElement("bbb");
book3.setAttribute("id","book"+1);
root.appendChild(book3);
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("F:/code/sohosystem/WEB-INF/src/org/DesignAC/bean/a.xml"));
TransformerFactory tfactory = TransformerFactory.newInstance();
Transformer transformer = tfactory.newTransformer();
transformer.setOutputProperty("encoding","UTF-8");
transformer.transform(source,result);
}catch(Exception e){
System.out.println(e);
}
}

}
wangsiye 2003-07-28
  • 打赏
  • 举报
回复
就是怎样才能有如下的显示效果
<?xml version="1.0" encoding="UTF-8" ?>
- <SQ:ATTRIBUTES xmlns:SQ="http://www.mynamespace.com">
- <SQ:HEADER xmlns:SQ="http://www.http://www.mynamespace.com">
<SQ:FILENAME xmlns:SQ="http://www.sequoiabroadband.com">LordOfRing3.AVI</SQ:FILENAME>
<SQ:FILETYPE xmlns:SQ="http://www.mynamespace.com">video</SQ:FILETYPE>
<SQ:CONTENTID xmlns:SQ="http://www.mynamespace.com">201</SQ:CONTENTID>
<SQ:STATUS xmlns:SQ="http://www.mynamespace.com">1</SQ:STATUS>
<SQ:DESCRIPTION xmlns:SQ="http://www.mynamespace.com">This is the test movie.</SQ:DESCRIPTION>
<SQ:OWNER xmlns:SQ="http://www.mynamespace.com">John Woo</SQ:OWNER>
<SQ:AUTHOR xmlns:SQ="http://www.mynamespace.com">Jack Chen</SQ:AUTHOR>
<SQ:CREATEDATE xmlns:SQ="http://www.mynamespace.com">2003,7,22</SQ:CREATEDATE>
<SQ:THUMBNAIL xmlns:SQ="http://www.mynamespace.com">twas1_beijing_sell1_Sample.jpg</SQ:THUMBNAIL>
</SQ:HEADER>
</SQ:ATTRIBUTES>
hxzhappy 2003-07-28
  • 打赏
  • 举报
回复
看晕了

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧