<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Latest posts for the topic "JAVA讀取XML一問 for JDOM"]]></title>
		<link>https://forum.andowson.com/posts/list/5.page</link>
		<description><![CDATA[Latest messages posted in the topic "JAVA讀取XML一問 for JDOM"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>JAVA讀取XML一問 for JDOM</title>
				<description><![CDATA[ 現在我只要讀取xml檔案中的標籤（YYY、SSS、NO三個字串），xml檔案格式如下： 
<br>
<br>
[code] 
<br>
&lt;?xml version = '1.0' encoding = 'Big5'?&gt; 
<br>
&lt;!DOCTYPE ROWSET [ 
<br>
&lt;!ELEMENT ROWSET (ROW)*&gt; 
<br>
&lt;!ELEMENT ROW (YYY, SSS, NO)&gt; 
<br>
&lt;!ATTLIST ROW num CDATA #REQUIRED&gt; 
<br>
&lt;!ATTLIST 電子檔案名稱 num CDATA #REQUIRED&gt; 
<br>
&lt;!ATTLIST 附件名稱 num CDATA #REQUIRED&gt; 
<br>
&lt;!ATTLIST 附件媒體型式 num CDATA #REQUIRED&gt; 
<br>
&lt;!ATTLIST 附件數量 num CDATA #REQUIRED&gt; 
<br>
&lt;!ATTLIST 附件單位 num CDATA #REQUIRED&gt; 
<br>
&lt;!ATTLIST 主題 num CDATA #REQUIRED&gt; 
<br>
&lt;!ATTLIST 附註 num CDATA #REQUIRED&gt; 
<br>
&lt;!ELEMENT YYY (#PCDATA)&gt; 
<br>
&lt;!ELEMENT SSS (#PCDATA)&gt; 
<br>
&lt;!ELEMENT NO (#PCDATA)&gt; 
<br>
]&gt; 
<br>
<br>
&lt;ROWSET&gt; 
<br>
<br>
&lt;ROW num="1"&gt; 
<br>
 &lt;YYY&gt;0080&lt;/YYY&gt; 
<br>
 &lt;SSS&gt;010302&lt;/SSS&gt; 
<br>
 &lt;NO&gt;002&lt;/NO&gt; 
<br>
&lt;/ROW&gt; 
<br>
<br>
&lt;ROW num="2"&gt; 
<br>
 &lt;YYY&gt;0078&lt;/YYY&gt; 
<br>
 &lt;SSS&gt;011602&lt;/SSS&gt; 
<br>
 &lt;NO&gt;001&lt;/NO&gt; 
<br>
&lt;/ROW&gt; 
<br>
<br>
&lt;ROW num="3"&gt; 
<br>
 &lt;YYY&gt;0070&lt;/YYY&gt; 
<br>
 &lt;SSS&gt;019302&lt;/SSS&gt; 
<br>
 &lt;NO&gt;011&lt;/NO&gt; 
<br>
&lt;/ROW&gt; 
<br>
 ‧ 
<br>
 ‧ 
<br>
 ‧ 
<br>
 ‧ 
<br>
&lt;ROW num="1225"&gt; 
<br>
 &lt;YYY&gt;0099&lt;/YYY&gt; 
<br>
 &lt;SSS&gt;018719&lt;/SSS&gt; 
<br>
 &lt;NO&gt;111&lt;/NO&gt; 
<br>
&lt;/ROW&gt; 
<br>
<br>
&lt;/ROWSET&gt; 
<br>
[/code] 
<br>
<br>
然後我顯示出來我要的資訊及如下程式碼： 
<br>
<br>
[code] 
<br>
-- Output -- 
<br>
年度號: 0080 
<br>
分類號: 010302 
<br>
案次號: 002 
<br>
--------------------------------------- 
<br>
年度號:0078 
<br>
分類號:011602 
<br>
案次號:001 
<br>
--------------------------------------- 
<br>
 ‧ 
<br>
 ‧ 
<br>
 ‧ 
<br>
 ‧ 
<br>
年度號: 0099 
<br>
分類號: 018719 
<br>
案次號: 111 
<br>
[/code] 
<br>
<br>
[code] 
<br>
import java.io.File; 
<br>
import java.io.IOException; 
<br>
import java.util.List; 
<br>
import org.jdom.Document; 
<br>
import org.jdom.Element; 
<br>
import org.jdom.JDOMException; 
<br>
import org.jdom.input.SAXBuilder; 
<br>
<br>
public class ReadXMLFile { 
<br>
 public static void main(String[] args) { 
<br>
<br>
 SAXBuilder builder = new SAXBuilder(); 
<br>
 File xmlFile = new File("C:\\JAVA_WORK\\test3.xml"); //已修正 
<br>
<br>
<br>
 try { 
<br>
<br>
 Document document = (Document) builder.build(xmlFile); 
<br>
 Element rootNode = document.getRootElement(); 
<br>
 List list = rootNode.getChildren("ROW"); //已修正 
<br>
<br>
 for (int i = 0; i &lt; list.size(); i++) { 
<br>
<br>
 Element node = (Element) list.get(i); 
<br>
<br>
 System.out.println("年度號 : " + node.getChildText("YYY")); 
<br>
 System.out.println("分類號 : " + node.getChildText("SSS")); 
<br>
 System.out.println("案次號 : " + node.getChildText("NO")); 
<br>
 System.out.println("----------------------------------------"); 
<br>
 } 
<br>
<br>
 } catch (IOException io) { 
<br>
 System.out.println(io.getMessage()); 
<br>
 } catch (JDOMException jdomex) { 
<br>
 System.out.println(jdomex.getMessage()); 
<br>
 } 
<br>
 } 
<br>
} 
<br>
[/code] 
<br>
<br>
仍是有錯？有在想是不是沒安裝JDOM與設定路徑？ 
<br>
<br>
目前將http://jdom.org/dist/binary/ 
<br>
<br>
的jdom-1.1.2.zip擋下載了。 
<br>
<br>
可以請教一下怎麼安裝與設定路徑嗎？ 
<br>
<br>
感激不盡&lt;(_ _)&gt;]]></description>
				<guid isPermaLink="true">https://forum.andowson.com/posts/preList/570/1199.page</guid>
				<link>https://forum.andowson.com/posts/preList/570/1199.page</link>
				<pubDate><![CDATA[Sun, 22 Jan 2012 01:01:50]]> GMT</pubDate>
				<author><![CDATA[ crc2121]]></author>
			</item>
			<item>
				<title>回覆:JAVA讀取XML一問 for JDOM</title>
				<description><![CDATA[ 您的程式需要修改一下，第13行改為兩個倒斜線(\\)，為什麼要兩個倒斜線是因為到斜線本身是Java的跳脫字元，否則就會變成\t，這樣就變成跳格字元了。 
<br>
[code=java; first-line:13]File xmlFile = new File("C:\\JAVA_WORK\\test3.xml");[/code] 
<br>
第19行改為 
<br>
[code=java; first-line:19]List list = rootNode.getChildren("ROW");[/code] 
<br>
即可正常輸出您要的結果。 
<br>
<br>
至於jdom-1.1.2.jar檔的安裝或設定其實主要是要設定在CLASSPATH這個環境變數上，例如您可以將jdom-1.1.2.zip解壓縮，然後將jar檔複製到於C:\JAVA_WORK\lib目錄下，然後在CLASSPATH中加入C:\JAVA_WORK\lib\jdom-1.1.2.jar。]]></description>
				<guid isPermaLink="true">https://forum.andowson.com/posts/preList/570/1200.page</guid>
				<link>https://forum.andowson.com/posts/preList/570/1200.page</link>
				<pubDate><![CDATA[Sun, 22 Jan 2012 23:23:23]]> GMT</pubDate>
				<author><![CDATA[ andowson]]></author>
			</item>
			<item>
				<title>回覆:JAVA讀取XML一問 for JDOM</title>
				<description><![CDATA[ 原本錯了25個，現在錯了１２個（應該是有修正），現在是哪邊有問題？ 
<br>
<br>
[code] 
<br>
<br>
C:\JAVA_WORK&gt;javac ReadXMLFile.java 
<br>
ReadXMLFile.java:4: package org.jdom does not exist 
<br>
import org.jdom.Document; 
<br>
 ^ 
<br>
ReadXMLFile.java:5: package org.jdom does not exist 
<br>
import org.jdom.Element; 
<br>
 ^ 
<br>
ReadXMLFile.java:6: package org.jdom does not exist 
<br>
import org.jdom.JDOMException; 
<br>
 ^ 
<br>
ReadXMLFile.java:7: package org.jdom.input does not exist 
<br>
import org.jdom.input.SAXBuilder; 
<br>
 ^ 
<br>
ReadXMLFile.java:12: cannot find symbol 
<br>
symbol : class SAXBuilder 
<br>
location: class ReadXMLFile 
<br>
 SAXBuilder builder = new SAXBuilder(); 
<br>
 ^ 
<br>
ReadXMLFile.java:12: cannot find symbol 
<br>
symbol : class SAXBuilder 
<br>
location: class ReadXMLFile 
<br>
 SAXBuilder builder = new SAXBuilder(); 
<br>
 ^ 
<br>
ReadXMLFile.java:17: cannot find symbol 
<br>
symbol : class Document 
<br>
location: class ReadXMLFile 
<br>
 Document document = (Document) builder.build(xmlFile); 
<br>
 ^ 
<br>
ReadXMLFile.java:17: cannot find symbol 
<br>
symbol : class Document 
<br>
location: class ReadXMLFile 
<br>
 Document document = (Document) builder.build(xmlFile); 
<br>
 ^ 
<br>
ReadXMLFile.java:18: cannot find symbol 
<br>
symbol : class Element 
<br>
location: class ReadXMLFile 
<br>
 Element rootNode = document.getRootElement(); 
<br>
 ^ 
<br>
ReadXMLFile.java:23: cannot find symbol 
<br>
symbol : class Element 
<br>
location: class ReadXMLFile 
<br>
 Element node = (Element) list.get(i); 
<br>
 ^ 
<br>
ReadXMLFile.java:23: cannot find symbol 
<br>
symbol : class Element 
<br>
location: class ReadXMLFile 
<br>
 Element node = (Element) list.get(i); 
<br>
 ^ 
<br>
ReadXMLFile.java:34: cannot find symbol 
<br>
symbol : class JDOMException 
<br>
location: class ReadXMLFile 
<br>
 } catch (JDOMException jdomex) { 
<br>
 ^ 
<br>
12 errors 
<br>
<br>
C:\JAVA_WORK&gt; 
<br>
[/code] 
<br>
<br>
懇請指點一下，謝謝&lt;(_ _)&gt;]]></description>
				<guid isPermaLink="true">https://forum.andowson.com/posts/preList/570/1201.page</guid>
				<link>https://forum.andowson.com/posts/preList/570/1201.page</link>
				<pubDate><![CDATA[Mon, 23 Jan 2012 10:28:56]]> GMT</pubDate>
				<author><![CDATA[ crc2121]]></author>
			</item>
			<item>
				<title>回覆:JAVA讀取XML一問 for JDOM</title>
				<description><![CDATA[ 您可以參考一下這個連結的說明： 
<br>
http://caterpillar.onlyfun.net/Gossip/JavaEssence/WhatClasspath.html 
<br>
<br>
先弄清楚什麼是CLASSPATH後，這個問題您應該就可以自行處理了。]]></description>
				<guid isPermaLink="true">https://forum.andowson.com/posts/preList/570/1202.page</guid>
				<link>https://forum.andowson.com/posts/preList/570/1202.page</link>
				<pubDate><![CDATA[Tue, 24 Jan 2012 15:16:35]]> GMT</pubDate>
				<author><![CDATA[ andowson]]></author>
			</item>
	</channel>
</rss>