锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
浠誨姟鍦ㄧ粰瀹氱殑瑙﹀彂鍣紙Trigger錛夎Е鍙戞椂鎵ц銆傝Е鍙戝櫒鍙互閫氳繃鍑犱箮浠ヤ笅鎵鏈夊艦寮忕殑緇勫悎鏂瑰紡榪涜鍒涘緩錛?br />
魛伜 鍦ㄤ竴澶╀腑鐨勪換鎰忔椂鍒伙紙鍙互綺劇‘鍒版縐掞級銆?br />
魛伜 涓鍛ㄤ腑鐗瑰畾鐨勪竴浜涘ぉ銆?br />
魛伜 涓涓湀涓壒瀹氱殑涓浜涘ぉ銆?br />
魛伜 涓騫翠腑鐗瑰畾鐨勪竴浜涘ぉ
魛伜 涓嶅湪鏃ュ巻鍒楄〃涓敞鍐岀殑涓浜涘ぉ錛堟瘮濡傝妭鍋囨棩錛夈?br />
魛伜 寰幆鐗瑰畾鐨勬鏁般?br />
魛伜 寰幆鍒扮壒瀹氱殑鏃墮棿銆?br />
魛伜 鏃犻檺寰幆銆?br />
魛伜 鎸夌収涓瀹氱殑鏃墮棿闂撮殧寰幆銆?br />
Job Execution錛堜換鍔℃墽琛岋級
• 浠誨姟鏄換浣曞疄鐜扮畝鍗旿ob鎺ュ彛鐨凧ava 綾伙紝榪欐牱寮鍙戣呰兘澶熸墽琛屼換浣曞畬鎴愪粬浠伐浣滅殑浠誨姟銆?br />
• 浠誨姟綾葷殑瀹炰緥鍙互鐢盦uartz瀹炰緥鍖栵紝涔熷彲浠ョ敱浣犵殑紼嬪簭妗嗘灦瀹炰緥鍖栥?br />
褰撹Е鍙戝櫒琚Е鍙戞椂錛屾棩紼嬬鐞嗗櫒灝嗕細(xì)閫氱煡鏌愪釜鎴栬呭涓疄鐜頒簡JobListener 鎴朤riggerListener鐨勫璞★紙鐩戝惉鍣ㄥ彲浠ユ槸綆鍗曠殑Java瀵硅薄錛屾垨鑰匛JBs,鎴栬匤MS娑堟伅鍙戝竷鍣紝絳夌瓑錛夈傝繖浜涚洃鍚櫒鍦ㄤ換鍔℃墽琛屽畬姣曞悗涔熶細(xì)鎺ュ埌閫氱煡銆?br />
• 浠誨姟琚畬鎴愬悗錛屼粬浠細(xì)榪斿洖涓涓?#8220;浠誨姟瀹屾垚鐮侊紙JobCompletionCode錛?#8221;錛岃繖涓?#8220;浠誨姟瀹屾垚鐮?#8221;鍛婄煡鏃ョ▼綆$悊鍣ㄤ換鍔℃墽琛岀殑緇撴灉鏄垚鍔熻繕鏄け璐ャ傛棩紼嬬鐞嗗櫒浼?xì)鏍规嵁鎴愬姛鎴栬呭け璐ョ爜鏉ラ噰鍙栨帾鏂斤紝姣斿錛氱珛鍗抽噸鏂版墽琛屼換鍔°?br />
Job Persistence錛堜換鍔℃寔涔呭寲錛?/strong>
• Quartz璁捐涓寘鎷簡涓涓狫obStore鎺ュ彛錛岃繖鏍鳳紝瀹炵幇榪欎釜鎺ュ彛鐨凧ob綾誨彲浠ヤ互澶氱鏈哄埗瀹炵幇Job鐨勫瓨鍌ㄣ?br />
• 閫氳繃浣跨敤JDBCJobStore,鎵鏈夌殑Jobs鍜孴riggers琚厤緗負(fù)“non-volatile”(涓嶈交蹇?鐨勬柟寮忋傚嵆錛岄氳繃JDBC瀛樺偍鍦ㄥ叧緋繪暟鎹簱涓?br />
• 閫氳繃浣跨敤RAMJobStore錛屾墍鏈塉obs鍜孴riggers琚瓨鍌ㄥ湪RAM銆傚洜姝わ紝鍦ㄧ▼搴忔墽琛屼腑娌℃湁琚寔涔呭寲錛屼絾榪欑鏂瑰紡鐨勪紭鐐瑰氨鏄笉闇瑕佸閮ㄦ暟鎹簱銆?br />
Transactions錛堜簨鍔★級
• Quartz閫氳繃JobStoreCMT錛圝DBCJobStore鐨勪竴涓瓙綾伙級鍙弬涓嶫TA浜嬪姟銆?br />
• Quartz鍙互綆$悊JTA浜嬪姟錛堝紑濮嬫垨鑰呮彁浜や簨鍔★級銆?br />
Clustering錛堥泦緹わ級
• Fail-over.錛堝閿欙級
• Load balancing.錛堣礋杞藉潎琛★級
Listeners & Plug-Ins錛堢洃鍚櫒鍙婃彃浠訛級
• 搴旂敤鍙互閫氳繃瀹炵幇涓涓垨鑰呭涓洃鍚櫒鎺ュ彛鏉ュ疄鐜版崟鎹夋棩紼嬩簨浠訛紝浠ョ洃瑙嗘垨鎺у埗浠誨姟/瑙﹀彂鍣ㄧ殑琛屼負(fù)銆?br />
• 鍙互閫氳繃鎻掍歡鐨勬満鍒舵潵鎵╁睍Quartz 鐨勫姛鑳姐備緥濡?璁板綍浠誨姟鎵ц鍘嗗彶鐨勬棩蹇楋紝鎴栬呬粠鏂囦歡涓澆鍏ヤ換鍔″拰瑙﹀彂鍣ㄧ殑瀹氫箟銆?
]]>
]]>
· XQuery瀵瑰ぇ灝忓啓鏁忔劅
· XQuery鐨勫厓绱犮佸睘鎬т互鍙婂彉閲忓繀欏繪槸鍚堟硶鐨刋ML鍚嶇О銆?
· XQuery瀛楃涓插煎彲浣跨敤鍗曞紩鍙鋒垨鍙屽紩鍙楓?
· XQuery鍙橀噺鐢?#8220;$”騫惰窡闅忎竴涓悕縐版潵榪涜瀹氫箟錛屼婦渚嬶紝$bookstore
· XQuery娉ㄩ噴琚?:鍜?)鍒嗗壊錛屼婦渚嬶紝(: XQuery 娉ㄩ噴 :)
XQuery 鏉′歡琛ㄨ揪寮?/span>
"If-Then-Else"鍙互鍦╔Query涓嬌鐢ㄣ?/span>
璇風(fēng)湅涓嬮潰鐨勪緥瀛愶細(xì)
for $x in doc("books.xml")/bookstore/book
return if ($x/@category="CHILDREN")
then <child>{data($x/title)}</child>
else <adult>{data($x/title)}</adult>
璇鋒敞鎰?If-Then-Else"鐨勮娉曪細(xì)if琛ㄨ揪寮忓悗鐨勫渾鎷彿鏄繀闇鐨勩俥lse涔熸槸蹇呴渶鐨勶紝涓嶈繃浠呬粎鍐?#8220;else ()”涔熸槸鍙互鐨勩?/span>
涓婇潰鐨勪緥瀛愮殑緇撴灉錛?/span>
<adult>Everyday Italian</adult>
<child>Harry Potter</child>
<adult>Learning XML</adult>
<adult>XQuery Kick Start</adult>
XQuery 姣旇緝
鍦?span lang="EN-US">XQuery涓紝鏈変袱縐嶆柟娉曟潵姣旇緝鍊箋?br />
1. 閫氱敤姣旇緝錛?span lang="EN-US">=, !=, <, <=, >, >=
2. 鍊肩殑姣旇緝錛歟q銆乶e銆乴t銆乴e銆乬t銆乬e
璇風(fēng)湅涓嬮潰鐨?span lang="EN-US">XQuery琛ㄨ揪寮忥細(xì)
$bookstore//book/@q > 10
濡傛灉q灞炴х殑鍊煎ぇ浜?span lang="EN-US">10錛屼笂闈㈢殑琛ㄨ揪寮忕殑榪斿洖鍊間負(fù)true銆?span lang="EN-US">
$bookstore//book/@q gt 10
濡傛灉浠呰繑鍥炰竴涓?span lang="EN-US">q錛屼笖瀹冪殑鍊煎ぇ浜?span lang="EN-US">10錛岄偅涔堣〃杈懼紡榪斿洖true銆傚鏋滀笉姝竴涓?span lang="EN-US">q琚繑鍥烇紝鍒欎細(xì)鍙戠敓閿欒銆?span lang="EN-US">
鍚戠粨鏋滄坊鍔犲厓绱犲拰灞炴?/span>
姝e鍦ㄥ墠闈竴鑺傜湅鍒扮殑錛屾垜浠彲浠ュ湪緇撴灉涓紩鐢ㄨ緭鍏ユ枃浠朵腑鐨勫厓绱犲拰灞炴э細(xì)
for $x in doc("books.xml")/bookstore/book/title
order by $x
return $x
涓婇潰鐨刋Query琛ㄨ揪寮忎細(xì)鍦ㄧ粨鏋滀腑寮曠敤title鍏冪礌鍜宭ang灞炴э紝灝卞儚榪欐牱錛?
<title lang="en">Everyday Italian</title>
<title lang="en">Harry Potter</title>
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>
浠ヤ笂XQuery琛ㄨ揪寮忚繑鍥瀟itle鍏冪礌鐨勬柟寮忓拰瀹冧滑鍦ㄨ緭鍏ユ枃妗d腑琚弿榪扮殑鏂瑰紡鐨勭浉鍚岀殑銆?/span>
鐜板湪鎴戜滑瑕佸悜緇撴灉娣誨姞鎴戜滑鑷繁鐨勫厓绱犲拰灞炴э紒
娣誨姞HTML鍏冪礌鍜屾枃鏈?/span>
鐜板湪錛屾垜浠鍚戠粨鏋滄坊鍔燞TML鍏冪礌銆傛垜浠細(xì)鎶婄粨鏋滄斁鍦ㄤ竴涓狧TML鍒楄〃涓?- Now, we want to add some HTML elements to the result. We will put the result in an HTML list - together with some text:
<html>
<body>
<h1>Bookstore</h1>
<ul>
{
for $x in doc("books.xml")/bookstore/book
order by $x/title
return <li>{data($x/title)}. Category: {data($x/@category)}</li>>
}
</ul>
</body>
</html
浠ヤ笂XQuery琛ㄨ揪寮忎細(xì)鐢熸垚涓嬮潰鐨勭粨鏋滐細(xì)
<html>
<body>
<h1>Bookstore</h1>
<ul>
<li>Everyday Italian. Category: COOKING</li>
<li>Harry Potter. Category: CHILDREN</li>
<li>Learning XML. Category: WEB</li>
<li>XQuery Kick Start. Category: WEB</li>
</ul>
</body>
</html>
閫夋嫨鍜岃繃婊ゅ厓绱?/span>
姝e鍦ㄥ墠闈㈢殑绔犺妭鐪嬪埌鐨勶紝鎴戜滑浣跨敤璺緞琛ㄨ揪寮忔垨FLWOR琛ㄨ揪寮忔潵閫夊幓鍜岃繃婊ゅ厓绱犮?/span>
璇風(fēng)湅涓嬮潰鐨凢LWOR琛ㄨ揪寮忥細(xì)
for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
for
錛堝彲閫夛級 鍚戞瘡涓敱in琛ㄨ揪寮忚繑鍥炵殑欏圭洰鎹嗙粦涓涓彉閲?/span>
let
錛堝彲閫夛級
where
錛堝彲閫夛級 璁懼畾涓涓潯浠?/span>
order by
錛堝彲閫夛級 璁懼畾緇撴灉鐨勬帓鍒楅『搴?/span>
return
瑙勫畾鍦ㄧ粨鏋滀腑榪斿洖鐨勫唴瀹?
for 璇彞
for璇彞鍙皢鍙橀噺鎹嗙粦鍒扮敱in琛ㄨ揪寮忚繑鍥炵殑姣忎釜欏圭洰銆俧or鍙駭鐢熻凱浠c傚湪鍚屼竴涓狥LWOR琛ㄨ揪寮忎腑鍙瓨鍦ㄥ閲峟or璇彞銆?/span>
濡傞渶鍦ㄤ竴涓猣or璇彞涓驚鐜寚瀹氱殑嬈℃暟錛屾?zhèn)ㄥ彲鋴社?em>鍏抽敭璇峵o錛?
for $x in (1 to 5)
return <test>{$x}</test>
緇撴灉錛?/span>
<test>1</test>
<test>2</test>
<test>3</test>
<test>4</test>
<test>5</test>
鍏抽敭璇峚t鍙鐢ㄦ潵璁$畻榪唬錛?/span>
for $x at $i in doc("books.xml")/bookstore/book/title
return <book>{$i}. {data($x)}</book>
緇撴灉錛?/span>
<book>1. Everyday Italian</book>
<book>2. Harry Potter</book>
<book>3. XQuery Kick Start</book>
<book>4. Learning XML</book>
鍦╢or璇彞涓悓鏍?em>鍏佽澶氫釜in琛ㄨ揪寮?/em>銆傝浣跨敤閫楀彿鏉ュ垎鍓叉瘡涓涓猧n琛ㄨ揪寮忥細(xì)
for $x in (10,20), $y in (100,200)
return <test>x={$x} and y={$y}</test>
緇撴灉錛?/span>
<test>x=10 and y=100</test>
<test>x=10 and y=200</test>
<test>x=20 and y=100</test>
<test>x=20 and y=200</test>
let 璇彞
let璇彞鍙畬鎴愬彉閲忓垎閰嶏紝騫跺彲閬垮厤澶氭閲嶅鐩稿悓鐨勮〃杈懼紡銆俵et璇彞涓嶅洖瀵艱嚧榪唬銆?/span>
let $x := (1 to 5)
return <test>{$x}</test>
緇撴灉
<test>1 2 3 4 5</test>
where 璇彞
where璇彞鐢ㄤ簬涓虹粨鏋滆瀹氫竴涓垨澶氫釜鏉′歡錛坈riteria錛夈?/span>
where $x/price>30 and $x/price<100
order by 璇彞
order by璇彞鐢ㄤ簬瑙勫畾緇撴灉鐨勬帓搴忔搴忋傛澶勶紝鎴戜滑瑕佹牴鎹甤ategory鍜宼itle鏉ュ緇撴灉榪涜鎺掑簭錛?/span>
for $x in doc("books.xml")/bookstore/book
order by $x/@category, $x/title
return $x/title
緇撴灉錛?/span>
<title lang="en">Harry Potter</title>
<title lang="en">Everyday Italian</title>
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>
return 璇彞錛?/span>
return璇彞瑙勫畾瑕佽繑鍥炵殑鍐呭銆?/span>
for $x in doc("books.xml")/bookstore/book
return $x/title
緇撴灉錛?/span>
<title lang="en">Everyday Italian</title>
<title lang="en">Harry Potter</title>
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
涓銆佸嚱鏁?/span>
XQuery浣跨敤鍑芥暟鏉ユ彁鍙朮ML鏂囨。涓殑鏁版嵁銆?/span>
doc()鐢ㄤ簬鎵撳紑"books.xml"鏂囦歡錛?/span>
doc("books.xml")
浜屻佽礬寰勮〃杈懼紡
XQuery浣跨敤璺緞琛ㄨ揪寮忓湪XML鏂囨。涓氳繃鍏冪礌榪涜瀵艱埅銆?/span>
涓嬮潰鐨勮礬寰勮〃杈懼紡鐢ㄤ簬鍦?books.xml"鏂囦歡涓夊彇鎵鏈夌殑title鍏冪礌錛?/span>
doc("books.xml")/bookstore/book/title
(/bookstore閫夊彇bookstore鍏冪礌錛?book閫夊彇bookstore鍏冪礌涓嬬殑鎵鏈塨ook鍏冪礌錛岃?title閫夊彇姣忎釜book鍏冪礌涓嬬殑鎵鏈塼itle鍏冪礌)
涓婇潰鐨刋Query鍙彁鍙栦互涓嬫暟鎹細(xì)
<title lang="en">Everyday Italian</title>
<title lang="en">Harry Potter</title>
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>
涓夈佽皳璇?/span>
XQuery浣跨敤璋撹鏉ラ檺瀹氫粠XML鏂囨。鎵鎻愬彇鐨勬暟鎹?/span>
涓嬮潰鐨勮皳璇敤浜庨夊彇bookstore鍏冪礌涓嬬殑鎵鏈塨ook鍏冪礌錛屽茍涓旀墍閫夊彇鐨刡ook鍏冪礌涓嬬殑price鍏冪礌鐨勫煎繀欏誨皬浜?0錛?/span>
doc("books.xml")/bookstore/book[price<30]
涓婇潰鐨刋Query鍙彁鍙栧埌涓嬮潰鐨勬暟鎹細(xì)
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
FLWOR鏄?span lang="EN-US">"For, Let, Where, Order by, Return"鐨勫彧鍙栭瀛楁瘝緙╁啓銆?/span>
for璇彞鎶?span lang="EN-US">bookstore鍏冪礌涓嬬殑鎵鏈?span lang="EN-US">book
鍏冪礌鎻愬彇鍒板悕涓?span lang="EN-US">$x鐨勫彉閲忎腑銆?span lang="EN-US">where璇彞閫夊彇浜?span lang="EN-US">price鍏冪礌鍊煎ぇ浜?span lang="EN-US">30鐨?span lang="EN-US">book鍏冪礌銆?span lang="EN-US">
order by璇彞瀹氫箟浜嗘帓搴忔搴忋傚皢鏍規(guī)嵁title鍏冪礌榪涜鎺掑簭銆?span lang="EN-US">
return璇彞瑙勫畾榪斿洖浠涔堝唴瀹廣傚湪姝よ繑鍥炵殑鏄?span lang="EN-US">title鍏冪礌銆?br />
璇風(fēng)湅涓嬮潰榪欎釜璺緞琛ㄨ揪寮忥細(xì)
doc("books.xml")/bookstore/book[price>30]/title
涓婇潰榪欎釜琛ㄨ揪寮忓彲閫夊彇bookstore鍏冪礌涓嬬殑book鍏冪礌涓嬫墍鏈夌殑title鍏冪礌錛屽茍涓斿叾涓殑price鍏冪礌鐨勫煎繀欏誨ぇ浜?0銆?/span>
涓嬮潰榪欎釜FLWOR琛ㄨ揪寮忔墍閫夊彇鐨勬暟鎹拰涓婇潰鐨勮礬寰勮〃杈懼紡鏄浉鍚岀殑錛?/span>
for $x in doc("books.xml")/bookstore/book
where $x/price>30
return $x/title
緇撴灉鏄細(xì)
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>
閫氳繃FLWOR錛屾?zhèn)ㄥ彲浠ュ缁撴灉杩涜鎺掑簭锛?xì)
for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
涓婇潰鐨?span lang="EN-US">XQuery琛ㄨ揪寮忕殑緇撴灉錛?span lang="EN-US">
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>
鍦ㄤ竴涓狧TML鍒楄〃涓彁浜ょ粨鏋?/span>
璇風(fēng)湅涓嬮潰鐨刋Query FLWOR琛ㄨ揪寮忥細(xì)
for $x in doc("books.xml")/bookstore/book/title
order by $x
return $x
涓婇潰鐨勮〃杈懼紡浼?xì)閫夊彇bookstore鍏冪礌涓嬬殑book鍏冪礌涓嬬殑鎵鏈塼itle鍏冪礌錛屽茍浠ュ瓧姣嶉『搴忚繑鍥瀟itle鍏冪礌銆?/span>
鐜板湪錛屾垜浠笇鏈涗嬌鐢℉TML鍒楄〃鍒楀嚭鎴戜滑鐨勪功搴椾腑鎵鏈夌殑涔︾洰銆傛垜浠悜FLWOR琛ㄨ揪寮忔坊鍔?lt;ul>鍜?lt;li>鏍囩錛?/span>
<ul>
{
for $x in doc("books.xml")/bookstore/book/title
order by $x
return <li>{$x}</li>
}
</ul>
浠ヤ笂浠g爜鐨勭粨鏋滐細(xì)
<ul>
<li><title lang="en">Everyday Italian</title></li>
<li><title lang="en">Harry Potter</title></li>
<li><title lang="en">Learning XML</title></li>
<li><title lang="en">XQuery Kick Start</title></li>
</ul>
鐜板湪鎴戜滑甯屾湜鍘婚櫎title鍏冪礌錛岃屼粎浠呮樉紺簍itle鍏冪礌鍐呯殑鏁版嵁銆?/span>
<ul>
{
for $x in doc("books.xml")/bookstore/book/title
order by $x
return <li>{data($x)}</li>
}
</ul>
緇撴灉灝嗘槸涓涓狧TML鍒楄〃錛?/span>
<ul>
<li>Everyday Italian</li>
<li>Harry Potter</li>
<li>Learning XML</li>
<li>XQuery Kick Start</li>
</ul>
import java.io.IOException;
import java.util.Properties;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
import net.sf.saxon.Configuration;
import net.sf.saxon.dom.*;
import net.sf.saxon.query.DynamicQueryContext;
import net.sf.saxon.query.StaticQueryContext;
import net.sf.saxon.query.XQueryExpression;
import net.sf.saxon.trans.XPathException;
public class XqueryTest {
/**
* 鎵ц鏌ヨ
*/
public static void select(){
//鏂囦歡
String fileString = "src/study/xquery/cd_catalog.xml";
//鏌ヨ璇彞
String query = " for $s in //CD/TITLE "
+ " return $s";
//鐢熶駭鏂囨。瀵硅薄
Document document = getDocument(fileString);
Configuration configuration = new Configuration();
StaticQueryContext context = new StaticQueryContext(configuration, false);
//鏌ヨ琛ㄨ揪寮忓璞?br />
XQueryExpression expression = null;
try {
expression = context.compileQuery(query);
DynamicQueryContext context2 = new DynamicQueryContext(configuration);
context2.setContextItem(new DocumentWrapper(document,null,configuration));
final Properties props = new Properties();
props.setProperty(OutputKeys.METHOD, "xml");
props.setProperty(OutputKeys.INDENT, "yes");
//鎵ц鏌ヨ錛屽茍杈撳嚭鏌ヨ緇撴灉
expression.run(context2, new StreamResult(System.out), props);
} catch (XPathException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 鐢熶駭鏂囨。瀵硅薄
*
* @param xml 鏂囦歡鍚?br />
* @return
*/
public static Document getDocument(String xml){
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
Document document = null;
try {
builder = builderFactory.newDocumentBuilder();
document = builder.parse(xml);
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
document.normalize();
return document;
}
/**
* 杈撳叆鐢熸垚鐨勬枃妗e唴瀹?br />
*
* @param doc
*/
public static void output(Document doc){
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = null;
try {
transformer = factory.newTransformer();
Properties properties = transformer.getOutputProperties();
properties.setProperty(OutputKeys.INDENT, "yes");
properties.setProperty(OutputKeys.ENCODING, "GB2312");
properties.setProperty(OutputKeys.METHOD, "xml");
properties.setProperty(OutputKeys.VERSION, "1.0");
transformer.setOutputProperties(properties);
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(System.out);
transformer.transform(source, result);
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
select();
}
}