⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 702164.xml

📁 论坛精华帖子
💻 XML
📖 第 1 页 / 共 2 页
字号:
<?xml version='1.0' encoding='GB2312'?>
<?xml-stylesheet type='text/xsl' href='../csdn.xsl'?>
<Topic>
<Issue>
<PostUserNickName></PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>98</credit>
<TopicId>702164</TopicId>
<TopicName>怎样用dom访问xml文档</TopicName>
<PostUserId>247628</PostUserId>
<PostUserName>jevon00</PostUserName>
<RoomName>JSP</RoomName>
<ReplyNum>9</ReplyNum>
<PostDateTime>2002-5-6 23:38:34</PostDateTime>
<Point>40</Point>
<ReadNum>0</ReadNum>
<RoomId>28</RoomId>
<EndState>2</EndState>
<Content>小弟初学jsp和xml,对用dom访问xml文档不太了解,望哪位高手帮忙解释一下,再给一个简单的实例,先谢了。</Content>
</Issue>
<Replys>
<Reply>
<PostUserNickName>九分半醉为红尘</PostUserNickName>
<rank>五级(中级)</rank>
<ranknum>user5</ranknum>
<credit>89</credit>
<ReplyID>4600829</ReplyID>
<TopicID>702164</TopicID>
<PostUserId>112142</PostUserId>
<PostUserName>scarab</PostUserName>
<Point>20</Point>
<Content>import&#32;org.jdom.*;&#32;
import&#32;org.jdom.output.*;&#32;
import&#32;org.jdom.input.*;&#32;
import&#32;java.io.*;&#32;

public&#32;class&#32;TestJDOM
{&#32;
&#9;public&#32;static&#32;void&#32;main(String&#32;args[])throws&#32;Exception
&#9;{&#32;

&#9;&#9;//SAXBuilder&#32;builds&#32;a&#32;JDOM&#32;tree&#32;using&#32;SAX.
&#9;&#9;SAXBuilder&#32;sb&#32;=&#32;new&#32;SAXBuilder();&#32;

&#9;&#9;//从文件构造一个Document,因为XML文件中已经指定了编码,所以这里不必了&#32;
&#9;&#9;Document&#32;doc&#32;=&#32;sb.build(new&#32;FileInputStream("exampleA.xml"));&#32;

&#9;&#9;//加入一条处理指令&#32;
&#9;&#9;ProcessingInstruction&#32;pi&#32;=&#32;new&#32;ProcessingInstruction&#32;("xml-stylesheet","href=\"greeting.css\"&#32;type=\"text/css\"");&#32;
&#9;&#9;doc.addContent(pi);&#32;


&#9;&#9;Element&#32;root&#32;=&#32;doc.getRootElement();&#32;//得到根元素&#32;
&#9;&#9;java.util.List&#32;books&#32;=&#32;root.getChildren();&#32;//得到根元素所有子元素的集合&#32;
&#9;&#9;Element&#32;book&#32;=&#32;(Element)books.get(0);&#32;//得到第一个book元素&#32;
&#9;&#9;//为第一本书添加一条属性&#32;
&#9;&#9;Attribute&#32;a&#32;=&#32;new&#32;Attribute("hot","true");&#32;
&#9;&#9;book.setAttribute(a);&#32;
&#9;&#9;Element&#32;author&#32;=&#32;book.getChild("author");&#32;//得到指定的字元素&#32;
&#9;&#9;author.setText("王五");&#32;//将作者改为王五&#32;
&#9;&#9;//或&#32;Text&#32;t&#32;=&#32;new&#32;Text("王五");book.addContent(t);&#32;
&#9;&#9;Element&#32;price&#32;=&#32;book.getChild("price");&#32;//得到指定的字元素&#32;
&#9;&#9;//修改价格,比较郁闷的是我们必须自己转换数据类型,而这正是JAXB的优势&#32;
&#9;&#9;price.setText(Float.toString(50.0f));&#32;



&#9;&#9;String&#32;indent&#32;=&#32;"&#32;";&#32;
&#9;&#9;boolean&#32;newLines&#32;=&#32;true;&#32;
&#9;&#9;XMLOutputter&#32;outp&#32;=&#32;new&#32;XMLOutputter(indent,newLines,"gb2312");&#32;
&#9;&#9;outp.output(doc,&#32;new&#32;FileOutputStream("exampleB.xml"));&#32;

&#9;}&#32;
}&#32;
==================
exampleA.xml
&lt;?xml&#32;version="1.0"&#32;encoding="gb2312"?&gt;&#32;
&lt;bookList&gt;&#32;
&#9;&lt;book&gt;&#32;
&#9;&#9;&lt;name&gt;Java编程入门&lt;/name&gt;&#32;
&#9;&#9;&lt;author&gt;张三&lt;/author&gt;&#32;
&#9;&#9;&lt;publishDate&gt;2002-6-6&lt;/publishDate&gt;&#32;
&#9;&#9;&lt;price&gt;35.0&lt;/price&gt;&#32;
&#9;&lt;/book&gt;&#32;
&#9;&lt;book&gt;&#32;
&#9;&#9;&lt;name&gt;XML在Java中的应用&lt;/name&gt;&#32;
&#9;&#9;&lt;author&gt;李四&lt;/author&gt;&#32;
&#9;&#9;&lt;publishDate&gt;2002-9-16&lt;/publishDate&gt;&#32;
&#9;&#9;&lt;price&gt;92.0&lt;/price&gt;&#32;
&#9;&lt;/book&gt;&#32;
&lt;/bookList&gt;&#32;

所需要的包要下载</Content>
<PostDateTime>2002-5-7 9:48:30</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>九分半醉为红尘</PostUserNickName>
<rank>五级(中级)</rank>
<ranknum>user5</ranknum>
<credit>89</credit>
<ReplyID>4600833</ReplyID>
<TopicID>702164</TopicID>
<PostUserId>112142</PostUserId>
<PostUserName>scarab</PostUserName>
<Point>0</Point>
<Content>上面演示的是JDom</Content>
<PostDateTime>2002-5-7 9:49:10</PostDateTime>
</Reply>
<Reply>
<PostUserNickName></PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>98</credit>
<ReplyID>4603501</ReplyID>
<TopicID>702164</TopicID>
<PostUserId>247628</PostUserId>
<PostUserName>jevon00</PostUserName>
<Point>0</Point>
<Content>多谢大哥赐教,可是小弟还有个请求,哪里可以找到那些包的下载?</Content>
<PostDateTime>2002-5-7 12:49:50</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>jacky</PostUserNickName>
<rank>五级(中级)</rank>
<ranknum>user5</ranknum>
<credit>105</credit>
<ReplyID>4603694</ReplyID>
<TopicID>702164</TopicID>
<PostUserId>30398</PostUserId>
<PostUserName>kkhui</PostUserName>
<Point>0</Point>
<Content>用dom可以参看javax.xml.parse.*;


Document&#32;doc&#32;=&#32;...DocumentBuilderFactory-&gt;newDocumentBuilder-&gt;parse</Content>
<PostDateTime>2002-5-7 13:02:12</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>九分半醉为红尘</PostUserNickName>
<rank>五级(中级)</rank>
<ranknum>user5</ranknum>
<credit>89</credit>
<ReplyID>4604088</ReplyID>
<TopicID>702164</TopicID>
<PostUserId>112142</PostUserId>
<PostUserName>scarab</PostUserName>
<Point>0</Point>
<Content>java.sun.com
www.xml.com
上去看看</Content>
<PostDateTime>2002-5-7 13:30:50</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>无影</PostUserNickName>
<rank>二级(初级)</rank>
<ranknum>user2</ranknum>
<credit>100</credit>
<ReplyID>4611865</ReplyID>
<TopicID>702164</TopicID>
<PostUserId>71921</PostUserId>
<PostUserName>obliang</PostUserName>
<Point>20</Point>
<Content>&lt;%@&#32;page&#32;contentType="text/html;charset=gb2312"&#32;%&gt;
&lt;!--这个JSP文件,是将数据库中得数据导入保存到xml文档中--&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;SQL&#32;connect&#32;Test&lt;/title&gt;
&lt;/head&gt;
&lt;%@&#32;page&#32;import="java.sql.*"&#32;%&gt;
&lt;%@&#32;page&#32;import="java.util.*"&#32;%&gt;
&lt;%@&#32;page&#32;import="sql.UpsInforParser"&#32;%&gt;
&lt;!--&#32;--&gt;
&lt;%
&#9;String&#32;cname;
&#9;String&#32;ename;
&#9;String&#32;producer;
&#9;String&#32;actor;
&#9;String&#32;pic;
&#9;String&#32;conn;
&#9;int&#32;line&#32;=&#32;0;
&#9;BitSet&#32;bst&#32;=&#32;new&#32;BitSet(0);
&#9;UpsInforParser&#32;parser&#32;=&#32;new&#32;UpsInforParser();
&#9;String[]&#32;strArr&#32;=&#32;new&#32;String[50000];

&#9;Class.forName("com.jnetdirect.jsql.JSQLDriver");
&#9;conn&#32;=&#32;"jdbc:JSQLConnect://localhost/database=media/user=sa";
&#9;Connection&#32;Conn&#32;=&#32;DriverManager.getConnection(conn);
&#9;java.sql.Statement&#32;SQLStatement&#32;=&#32;Conn.createStatement();
&#9;String&#32;Query&#32;=&#32;"SELECT&#32;ID,&#32;NAME_CH,NAME_EN,PRODUCER,ACTOR,PIC&#32;FROM&#32;MEDIAINFOR";
&#9;ResultSet&#32;SQLResult&#32;=&#32;SQLStatement.executeQuery(Query);
%&gt;
&lt;table&#32;border&#32;=&#32;1&#32;cellspacing=0&#32;cellpadding=0&gt;
&#32;&lt;tr&gt;
&#32;&lt;td&#32;width=20&gt;&lt;a&#32;href="sqltestxml.jsp"&gt;ID&lt;/a&gt;&lt;/td&gt;
&#32;&lt;td&#32;width=80&gt;NAME_CH&lt;/td&gt;
&#32;&lt;td&#32;width=80&gt;NAME_EN&lt;/td&gt;
&#32;&lt;td&#32;width=80&gt;PRODUCER&lt;/td&gt;
&#32;&lt;td&#32;width=80&gt;ACTOR&lt;/td&gt;
&#32;&lt;td&#32;width=100&gt;PIC&#32;URL&lt;/td&gt;
&#32;&lt;/tr&gt;

&#32;&lt;%
&#32;strArr[line]&#32;=&#32;"&lt;?xml&#32;version=\"1.0\"&#32;encoding=\"GB2312\"?&gt;";
&#32;line++;
&#32;strArr[line]&#32;=&#32;"&lt;DOCUMENT&gt;";
&#32;line++;
&#32;&#32;while(SQLResult.next()){
&#32;&#32;&#9;&#32;&#32;strArr[line++]&#32;=&#32;"&lt;FILM&gt;";
&#9;&#32;&#32;strArr[line++]&#32;=&#32;"&lt;ID&gt;"+SQLResult.getString(1)+"&lt;/ID&gt;";
&#9;&#32;&#32;strArr[line++]&#32;=&#32;"&lt;CNAME&gt;"+SQLResult.getString(2)+"&lt;/CNAME&gt;";
&#32;&#32;&#9;&#32;&#32;strArr[line++]&#32;=&#32;"&lt;ENAME&gt;"+SQLResult.getString(3)+"&lt;/ENAME&gt;";
&#9;&#32;&#32;strArr[line++]&#32;=&#32;"&lt;PRODUCER&gt;"+SQLResult.getString(4)+"&lt;/PRODUCER&gt;";
&#9;&#32;&#32;strArr[line++]&#32;=&#32;"&lt;ACTOR&gt;"+SQLResult.getString(5)+"&lt;/ACTOR&gt;";
&#9;&#32;&#32;strArr[line++]&#32;=&#32;"&lt;IMG&gt;"+SQLResult.getString(6)+"&lt;/IMG&gt;";
&#32;&#32;&#9;&#32;&#32;strArr[line++]&#32;=&#32;"&lt;/FILM&gt;";
&#32;%&gt;
&#32;&lt;tr&gt;
&#32;&lt;td&#32;width=20&gt;&lt;%=SQLResult.getString(1)%&gt;&lt;/td&gt;
&#32;&lt;td&#32;width=80&gt;&lt;%=SQLResult.getString(2)%&gt;&lt;/td&gt;
&#32;&lt;td&#32;width=80&gt;&lt;%=SQLResult.getString(3)%&gt;&lt;/td&gt;
&#32;&lt;td&#32;width=80&gt;&lt;%=SQLResult.getString(4)%&gt;&lt;/td&gt;
&#32;&lt;td&#32;width=80&gt;&lt;%=SQLResult.getString(5)%&gt;&lt;/td&gt;
&#32;&lt;td&#32;width=40&gt;&lt;img&#32;src="&lt;%=SQLResult.getString(6)%&gt;"&gt;&lt;/td&gt;&#9;
&#32;&lt;/tr&gt;
&#32;&lt;%}
&#32;&#32;&#32;&#32;strArr[line++]&#32;=&#32;"&lt;/DOCUMENT&gt;";
&#9;bst.set(line-1);
&#32;out.print("the&#32;all&#32;acount&#32;are:&#32;"+line);
&#32;parser.createDoc("..\\webapps\\test\\sql\\sqltest.xml",strArr,line);
&#32;Conn.close();
&#32;%&gt;
&lt;/table&gt;

绝对通过,我正在使用!</Content>
<PostDateTime>2002-5-7 22:53:42</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>无影</PostUserNickName>
<rank>二级(初级)</rank>
<ranknum>user2</ranknum>
<credit>100</credit>
<ReplyID>4611871</ReplyID>
<TopicID>702164</TopicID>
<PostUserId>71921</PostUserId>
<PostUserName>obliang</PostUserName>
<Point>0</Point>
<Content>
下面是我调用的一个类,我套用了一般的DOM处理XML文档的方法,制作了相应的改动。

package&#32;sql;
import&#32;org.w3c.dom.*;
import&#32;org.apache.xerces.parsers.DOMParser;
import&#32;java.io.*;

public&#32;class&#32;UpsInforParser
{
&#9;private&#32;String[]&#32;displayStrings&#32;=&#32;new&#32;String[5000];
&#9;private&#32;String[]&#32;value&#32;=&#32;new&#32;String[5000];
&#9;private&#32;int&#32;numberDisplayLines&#32;=&#32;0;
&#9;private&#32;Node&#32;&#32;c;
&#9;private&#32;Document&#32;doc;
&#9;private&#32;&#32;String[]&#32;str;
&#9;private&#32;int&#32;k&#32;=&#32;0;
&#32;&#9;private&#32;String&#32;index;
&#9;public&#32;UpsInforParser(String[]&#32;data)
&#9;{
&#9;&#9;this.str&#32;=&#32;data;
&#9;}
&#9;public&#32;UpsInforParser()
&#9;{
&#9;}&#9;
&#9;public&#32;static&#32;void&#32;main(String[]&#32;args)
&#9;{
&#9;&#9;String[]&#32;s&#32;=&#32;{"tNAME","tIP","ZONE","POSITION","CODE"};
&#9;&#9;UpsInforParser&#32;parser&#32;=&#32;new&#32;UpsInforParser(s);
//&#9;&#9;parser.createDoc("data/upsinfor.xml");
&#9;&#9;//for(int&#32;loopIndex&#32;=&#32;0;loopIndex&#32;&lt;&#32;numberDisplayLines;loopIndex++)
&#9;&#9;//{
&#9;&#9;&#9;//System.out.println(displayStrings[loopIndex]);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -