锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产亚洲色视频在线,www国产亚洲精品久久久日本,精品亚洲成α人无码成α在线观看 http://m.tkk7.com/rain1102/category/37666.html<br/><font color="green" style="font-family: 鍗庢枃琛屾シ;font-size:16px;">瀛愭洶錛氬嵄閭︿笉鍏ワ紝涔遍偊涓嶅眳銆傚ぉ涓嬫湁閬撳垯瑙侊紝鏃犻亾鍒欓殣銆?lt;/font><font color="#3C1435"></font>zh-cnSun, 20 Sep 2009 13:43:43 GMTSun, 20 Sep 2009 13:43:43 GMT60Super CSV鐢ㄤ簬澶勭悊CSV鏂囦歡鐨凧ava寮婧愰」鐩?/title><link>http://m.tkk7.com/rain1102/archive/2009/09/20/295760.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Sun, 20 Sep 2009 09:48:00 GMT</pubDate><guid>http://m.tkk7.com/rain1102/archive/2009/09/20/295760.html</guid><wfw:comment>http://m.tkk7.com/rain1102/comments/295760.html</wfw:comment><comments>http://m.tkk7.com/rain1102/archive/2009/09/20/295760.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/rain1102/comments/commentRss/295760.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/rain1102/services/trackbacks/295760.html</trackback:ping><description><![CDATA[<p>Super CSV鏄竴涓敤浜庡鐞咰SV鏂囦歡鐨凧ava寮婧愰」鐩傚畠瀹屽叏鍥寸粫闈㈠悜瀵硅薄鐨勬濇兂榪涜璁捐錛屽洜姝ゅ彲浠ュ埄鐢ㄤ綘鐨勯潰鍚戝璞′唬鐮佹潵浣垮緱澶勭悊CSV鏂囦歡鍙樺緱鏇村姞綆鏄撱傚畠鏀寔杈撳叆/杈撳嚭綾誨瀷杞崲銆佹暟鎹畬鏁存ф牎楠岋紝鏀寔浠庝換浣曞湴鏂逛互浠諱綍緙栫爜璇誨啓鏁版嵁錛屽彧瑕佹彁渚涚浉搴旂殑Reader涓嶹riter瀵硅薄銆傚彲閰嶇疆鍒嗗壊絎︼紝絀烘牸絎﹀彿鍜岃緇撴潫絎︾瓑銆?<br /> 涓嬮潰鏉ョ湅涓涓嬪畼鏂規(guī)枃妗d腑鐨勪唬鐮佺ず渚嬨?br /> 1. 鏍規(guī)嵁澶存潵璇誨彇CSV鏂囦歡<br />     鎶婃枃浠朵腑鐨勬瘡琛岃褰曡鍙栧嚭鏉ヨ漿鍖栦負(fù)java瀵硅薄錛屽亣璁句綘鏈変竴涓猆serBean綾伙紝浠g爜濡備笅錛?br />         <span id="nbrdzvp" class="kwd"><span style="color: #008000"><span id="hjjvzft" class="kwd">public</span><span id="pdthzbr" class="pln"> </span><span id="ndzpnbn" class="kwd">class</span><span id="ldpxbnf" class="pln"> </span><span id="vfvrvnp" class="typ">UserBean</span><span id="drjhzvr" class="pln"> </span><span id="xjdnbpz" class="pun">{</span><span id="ltjhnpx" class="pln"><br />             </span><span id="nlflxzr" class="typ">String</span><span id="rnjvvnz" class="pln"> username</span><span id="lbfxnzr" class="pun">,</span><span id="vrzrlnp" class="pln"> password</span><span id="fpjvhnj" class="pun">,</span><span id="drttbxp" class="pln"> street</span><span id="xlzppff" class="pun">,</span><span id="znrxtvn" class="pln"> town</span><span id="fhtnddd" class="pun">;</span><span id="hlhjhdt" class="pln"><br />             </span><span id="tlrrlzn" class="kwd">int</span><span id="vfnprnt" class="pln"> zip</span><span id="ldnvhjp" class="pun">;</span><span id="rdlpfhd" class="pln"><br /> <br />             </span><span id="lnxbvph" class="kwd">public</span><span id="hnzxbfd" class="pln"> </span><span id="lhhtlvn" class="typ">String</span><span id="nxvdzhj" class="pln"> getPassword</span><span id="lrzfldr" class="pun">()</span><span id="tpllnzx" class="pln"> </span><span id="ffnxlzd" class="pun">{</span><span id="lhdjtrr" class="pln"> </span><span id="zvvpjhd" class="kwd">return</span><span id="llljnjp" class="pln"> password</span><span id="xdzxdzx" class="pun">;</span><span id="vdznxpx" class="pln"> </span><span id="hdjbjhj" class="pun">}</span><span id="tnpvplt" class="pln"><br />             </span><span id="pbddjzz" class="kwd">public</span><span id="tbfdjhz" class="pln"> </span><span id="jnpvhvv" class="typ">String</span><span id="trphnbz" class="pln"> getStreet</span><span id="tjjfprb" class="pun">()</span><span id="dvjpflv" class="pln"> </span><span id="pjzdpfz" class="pun">{</span><span id="dvthbbn" class="pln"> </span><span id="tfhbzhz" class="kwd">return</span><span id="bhvrvxv" class="pln"> street</span><span id="nlxzljv" class="pun">;</span><span id="fdnfxlz" class="pln"> </span><span id="dbtldtp" class="pun">}</span><span id="lrbfdlt" class="pln"><br />             </span><span id="bhfzfxv" class="kwd">public</span><span id="lxhzvrx" class="pln"> </span><span id="vtjzjpl" class="typ">String</span><span id="jprrrvh" class="pln"> getTown</span><span id="zvxvjdl" class="pun">()</span><span id="ttbbtfd" class="pln"> </span><span id="bftndlz" class="pun">{</span><span id="xpbbztd" class="pln"> </span><span id="xtvhhvz" class="kwd">return</span><span id="ndxjvzh" class="pln"> town</span><span id="npvhljj" class="pun">;</span><span id="znbvfjz" class="pln"> </span><span id="nprzdbr" class="pun">}</span><span id="zxbtjjh" class="pln"><br />             </span><span id="pddttfb" class="kwd">public</span><span id="hzlhhbt" class="pln"> </span><span id="vlfpxzr" class="typ">String</span><span id="fhbdbpr" class="pln"> getUsername</span><span id="vtbrxxt" class="pun">()</span><span id="dhphxfx" class="pln"> </span><span id="dvbtvdt" class="pun">{</span><span id="zptbzft" class="pln"> </span><span id="rdfffnp" class="kwd">return</span><span id="ldhdpff" class="pln"> username</span><span id="bhzzdtz" class="pun">;</span><span id="dlldlhz" class="pln"> </span><span id="xhpdfxj" class="pun">}</span><span id="jtjlnhf" class="pln"><br />             </span><span id="vfdffxj" class="kwd">public</span><span id="tjnjxpf" class="pln"> </span><span id="jjlxfdt" class="kwd">int</span><span id="rzbbrzv" class="pln"> getZip</span><span id="tthndhn" class="pun">()</span><span id="znrnjzv" class="pln"> </span><span id="nphppvp" class="pun">{</span><span id="pdfbxxl" class="pln"> </span><span id="rdtpfjl" class="kwd">return</span><span id="hntlzhx" class="pln"> zip</span><span id="jfzndvn" class="pun">;</span><span id="ttrbvrt" class="pln"> </span><span id="jrjtlnb" class="pun">}</span><span id="ttvxxfd" class="pln"><br />         </span><span id="ttvzfjf" class="kwd">    public</span><span id="nrttjzf" class="pln"> </span><span id="hhzzbjb" class="kwd">void</span><span id="dfzxlfr" class="pln"> setPassword</span><span id="bjjzjvj" class="pun">(</span><span id="jblpfxf" class="typ">String</span><span id="tpddlnp" class="pln"> password</span><span id="pnnffbh" class="pun">)</span><span id="lpvtpxh" class="pln"> </span><span id="nlbphlp" class="pun">{</span><span id="rrjvxvt" class="pln"> </span><span id="hxrrrbj" class="kwd">this</span><span id="rllpznn" class="pun">.</span><span id="trtlfdt" class="pln">password </span><span id="hfprvjh" class="pun">=</span><span id="hnpjjhp" class="pln"> password</span><span id="xtxpjxf" class="pun">;</span><span id="bjlfndt" class="pln"> </span><span id="djbnhvl" class="pun">}</span><span id="rxrjvbr" class="pln"><br />             </span><span id="9dx1933" class="kwd">public</span><span id="1p33vpz" class="pln"> </span><span id="99zdxdr" class="kwd">void</span><span id="xl991rh" class="pln"> setStreet</span><span id="z9h9vbj" class="pun">(</span><span id="tb3hd91" class="typ">String</span><span id="b9pldn1" class="pln"> street</span><span id="fxdvrpf" class="pun">)</span><span id="lxnpr9p" class="pln"> </span><span id="9v99l9n" class="pun">{</span><span id="19fj1vt" class="pln"> </span><span id="jbd9nb9" class="kwd">this</span><span id="31v9fv9" class="pun">.</span><span id="hnrh99p" class="pln">street </span><span id="19fzv99" class="pun">=</span><span id="939nxbh" class="pln"> street</span><span id="pfh9zf9" class="pun">;</span><span id="znp3n99" class="pln"> </span><span id="nbvt1n9" class="pun">}</span><span id="th9np9b" class="pln"><br />         </span><span id="fj9vzjp" class="kwd">    public</span><span id="brtz9h3" class="pln"> </span><span id="rhtf99t" class="kwd">void</span><span id="3jfx9jl" class="pln"> setTown</span><span id="djl9zxd" class="pun">(</span><span id="d99t9zt" class="typ">String</span><span id="91z919p" class="pln"> town</span><span id="drtnb9f" class="pun">)</span><span id="j9vpdfd" class="pln"> </span><span id="nr9vbzf" class="pun">{</span><span id="zv3lfvj" class="pln"> </span><span id="9vxhfv9" class="kwd">this</span><span id="p9lxbnp" class="pun">.</span><span id="zdxjd3f" class="pln">town </span><span id="33v99fl" class="pun">=</span><span id="z39t1zf" class="pln"> town</span><span id="9xz99fd" class="pun">;</span><span id="9d993tj" class="pln"> </span><span id="fhr3pvt" class="pun">}</span><span id="tzj99rp" class="pln"><br />             </span><span id="hfzlrfn" class="kwd">public</span><span id="rrtn9d9" class="pln"> </span><span id="tffzbzn" class="kwd">void</span><span id="9nhj9vt" class="pln"> setUsername</span><span id="bn9t99r" class="pun">(</span><span id="h99z3jh" class="typ">String</span><span id="zv9jf1j" class="pln"> username</span><span id="3jtfpz9" class="pun">)</span><span id="393ptn9" class="pln"> </span><span id="zvzzlz9" class="pun">{</span><span id="jpbtn9l" class="pln"> </span><span id="9xhbl9v" class="kwd">this</span><span id="bh3v9jp" class="pun">.</span><span id="jnx9tz9" class="pln">username </span><span id="99p191d" class="pun">=</span><span id="9vhtd99" class="pln"> username</span><span id="3jlvhx9" class="pun">;</span><span id="xtx9rh9" class="pln"> </span><span id="xdvhbzb" class="pun">}</span><span id="z1rl919" class="pln"><br />     </span><span id="p9dx9lv" class="kwd">        public</span><span id="x99n9hn" class="pln"> </span><span id="r1bdxvb" class="kwd">void</span><span id="9r9th39" class="pln"> setZip</span><span id="11b1znl" class="pun">(</span><span id="39xrbj9" class="kwd">int</span><span id="9zrtv9f" class="pln"> zip</span><span id="391jp99" class="pun">)</span><span id="9ddf1vb" class="pln"> </span><span id="dxht9z9" class="pun">{</span><span id="3hr9dbp" class="pln"> </span><span id="d9hj19h" class="kwd">this</span><span id="3pr99vl" class="pun">.</span><span id="d99nh91" class="pln">zip </span><span id="39zj9zn" class="pun">=</span><span id="3p99jhn" class="pln"> zip</span><span id="rvnhdr9" class="pun">;</span><span id="h3bl9hn" class="pln"> </span><span id="3frt39d" class="pun">}</span><span id="nf3blbh" class="pln"><br /> </span><span id="jfrjzvv" class="pun">        }</span></span></span><br />  騫朵笖鏈変竴涓狢SV鏂囦歡錛屽寘鍚竴涓枃浠跺ご錛屽亣璁炬枃浠跺唴瀹瑰涓嬶細(xì)<br /> <span id="n9n9xvd" class="pln"><span style="color: #993366"><span id="p3jd9x1" class="pln">    username</span><span id="9hlv9p9" class="pun">,</span><span id="p1bvj1r" class="pln"> password</span><span id="v3vnt9d" class="pun">,</span><span id="9j9dxl1" class="pln">   date</span><span id="tp1dxn1" class="pun">,</span><span id="999z9nl" class="pln">        zip</span><span id="fvr99d9" class="pun">,</span><span id="jbdnb1l" class="pln">  town<br /> </span><span id="ltvfp9b" class="typ">    Klaus</span><span id="9l9l9j9" class="pun">,</span><span id="lt9lv9p" class="pln">    qwexyKiks</span><span id="nl39xnl" class="pun">,</span><span id="xrjdf3r" class="pln">  </span><span id="19x919t" class="lit">17</span><span id="9h9tvnt" class="pun">/</span><span id="3prv9jz" class="lit">1</span><span id="vjlnp3j" class="pun">/</span><span id="39t1db1" class="lit">2007</span><span id="r9vx9l9" class="pun">,</span><span id="nzb39z1" class="pln">   </span><span id="d9hjdrr" class="lit">1111</span><span id="j99lf99" class="pun">,</span><span id="3h9ddv9" class="pln"> </span><span id="fx39hpv" class="typ">New</span><span id="3xr9jxn" class="pln"> </span><span id="3v9r1fx" class="typ">York</span><span id="h9nprbz" class="pln"><br /> </span><span id="zp3l991" class="typ">    Oufu</span><span id="p3tvf9d" class="pun">,</span><span id="ftnxrlh" class="pln">     bobilop</span><span id="l9xhjb9" class="pun">,</span><span id="bptv9vb" class="pln">    </span><span id="f9bv9rz" class="lit">10</span><span id="l39nrp1" class="pun">/</span><span id="nn1bbbz" class="lit">10</span><span id="rrbvn99" class="pun">/</span><span id="f3d9ftj" class="lit">2007</span><span id="x3hb99b" class="pun">,</span><span id="ltdfpx3" class="pln">  </span><span id="jv9ztzf" class="lit">4555</span><span id="3pjvf9h" class="pun">,</span><span id="trb39pd" class="pln"> </span><span id="fnf999n" class="typ">New</span><span id="3h9pr9l" class="pln"> </span><span id="f9rt9xv" class="typ">York</span></span></span></p> 鐒跺悗浣犲彲浠ヤ嬌鐢ㄤ竴涓嬩唬鐮佹潵鍒涘緩UserBean鐨勫疄渚嬪璞★紝騫舵墦鍗板嚭瀵硅薄鐨勫睘鎬у鹼細(xì)<br />     <span id="hjlf3vt" class="kwd"><span style="color: #008000"><span id="v9dnp9z" class="kwd">class</span><span id="399nfvb" class="pln"> </span><span id="9nhjtjh" class="typ">ReadingObjects</span><span id="b9xjdjr" class="pln"> </span><span id="r9vnpfv" class="pun">{</span><span id="fb3hrz9" class="pln"><br /> </span><span id="3frlfd9" class="kwd">        public</span><span id="9v999vd" class="pln"> </span><span id="dh3n999" class="kwd">static</span><span id="lhb9jzx" class="pln"> </span><span id="3v9r9ft" class="kwd">void</span><span id="9lvxr3b" class="pln"> main</span><span id="v3jlnd9" class="pun">(</span><span id="znp9b9d" class="typ">String</span><span id="xdxh3f9" class="pun">[]</span><span id="rv9rjp9" class="pln"> args</span><span id="rv3f9lj" class="pun">)</span><span id="vjt3x9z" class="pln"> </span><span id="3hzt99r" class="kwd">throws</span><span id="zld3rnd" class="pln"> </span><span id="d39phnt" class="typ">Exception</span><span id="r9hrf9r" class="pun">{</span><span id="ftn9rhn" class="pln"><br /> </span><span id="bnr9r99" class="typ">            ICsvBeanReader</span><span id="h3hzbpf" class="pln"> inFile </span><span id="xlvxrfd" class="pun">=</span><span id="txblft3" class="pln"> </span><span id="l39f9bp" class="kwd">new</span><span id="d33xzxd" class="pln"> </span><span id="rphrd3v" class="typ">CsvBeanReader</span><span id="p3399tj" class="pun">(</span><span id="9lx999t" class="kwd">new</span><span id="zvtnhxb" class="pln"> </span><span id="r999r39" class="typ">FileReader</span><span id="r9d9999" class="pun">(</span><span id="j9d9vlr" class="str">"foo.csv"</span><span id="brtvhnt" class="pun">),</span><span id="dxz99v9" class="pln"> </span><span id="3v9zt9d" class="typ">CsvPreference</span><span id="d9nfz13" class="pun">.</span><span id="3zt9d9d" class="pln">EXCEL_PREFERENCE</span><span id="t399xd3" class="pun">);</span><span id="zz399nd" class="pln"><br />             </span><span id="9dv3x99" class="kwd">try</span><span id="3t9nzvl" class="pln"> </span><span id="p39v9z9" class="pun">{</span><span id="39h9bbh" class="pln"><br /> </span><span id="dnpjbbz" class="kwd">                final</span><span id="tr3fh9x" class="pln"> </span><span id="pjlf99p" class="typ">String</span><span id="39xhbzx" class="pun">[]</span><span id="d3jtn9l" class="pln"> header </span><span id="h9lnpx9" class="pun">=</span><span id="f3rj99p" class="pln"> inFile</span><span id="399z93x" class="pun">.</span><span id="zprtd3n" class="pln">getCSVHeader</span><span id="ntnp9n9" class="pun">(</span><span id="z9ff3db" class="kwd">true</span><span id="b39t999" class="pun">);</span><span id="3rt9ljh" class="pln"><br /> </span><span id="z99x939" class="typ">                UserBean</span><span id="d3vbpn9" class="pln"> user</span><span id="z9ptl3f" class="pun">;</span><span id="9t9nhnl" class="pln"><br /> </span><span id="l3d3tzn" class="kwd">                while</span><span id="hxjtvj3" class="pun">(</span><span id="jt9999d" class="pln"> </span><span id="xzj3vbz" class="pun">(</span><span id="3l9fznv" class="pln">user </span><span id="bv99f39" class="pun">=</span><span id="l9p99hf" class="pln"> inFile</span><span id="99f9bzx" class="pun">.</span><span id="93jxz9l" class="pln">read</span><span id="xf39hf9" class="pun">(</span><span id="9rtnxdl" class="typ">UserBean</span><span id="rf39r9t" class="pun">.</span><span id="l3p9bpp" class="kwd">class</span><span id="d9pd9jj" class="pun">,</span><span id="3d9b99l" class="pln"> header</span><span id="39lbbbz" class="pun">,</span><span id="3n99vd9" class="pln"> processors</span><span id="fphb939" class="pun">))</span><span id="zxph9l9" class="pln"> </span><span id="3bdpz39" class="pun">!=</span><span id="99z9399" class="pln"> </span><span id="j9lj999" class="kwd">null</span><span id="d33399h" class="pun">)</span><span id="hfz3b9b" class="pln"> </span><span id="ft3zt99" class="pun">{</span><span id="19r9rz9" class="pln"><br />                     </span><span id="th39rpf" class="typ">System</span><span id="jhrldjz" class="pun">.</span><span id="d9v9l9t" class="kwd">out</span><span id="rfh39zf" class="pun">.</span><span id="l3vb9zh" class="pln">println</span><span id="ftv99tj" class="pun">(</span><span id="n399ndt" class="pln">user</span><span id="tpjdfn3" class="pun">.</span><span id="f3bprpf" class="pln">getZip</span><span id="93ht9z9" class="pun">());</span><span id="r3v9p39" class="pln"><br /> </span><span id="19npjpl" class="pun">                }</span><span id="3rtdxfb" class="pln"><br /> </span><span id="h3jt9zp" class="pun">            }</span><span id="zvxbd3t" class="pln"> </span><span id="rv9l999" class="kwd">finally</span><span id="3vp39t3" class="pln"> </span><span id="39fhrhn" class="pun">{</span><span id="3nhjbbz" class="pln"><br />                 inFile</span><span id="9vfvpx9" class="pun">.</span><span id="b999fvb" class="pln">close</span><span id="3nfz9fd" class="pun">();</span><span id="1j91t3f" class="pln"><br /> </span><span id="33xz99r" class="pun">            }</span><span id="39t9999" class="pln"><br /> </span><span id="nhtnhf3" class="pun">        }</span><span id="jxpjtjr" class="pln"><br /> </span><span id="3999rhv" class="pun">    }<br /> </span></span></span>鎴戜滑榪樺墿涓媝rocessors娌℃湁瀹氫箟錛岄氳繃鍚嶅瓧鎴戜滑鍙互鐪嬪嚭鏄В鏋愬櫒錛岀敤鏉ュ鐞嗘瘡鍒楃殑鏁版嵁錛屽綋鐒朵綘涔熷彲浠ヤ紶鍏ull錛岃〃紺鴻鍒椾笉鍋氱壒孌婂鐞嗭紝姣忎釜瑙f瀽鍣ㄥ彲浠ヨ鍙﹀涓涓寘鍚湪鍐呴儴錛?tt>new Unique(new StrMinMax(5錛?0))錛岃繖涓唬鐮佽鍒楃殑鍊間負(fù)鍞竴鐨勶紝騫朵笖闀垮害涓?鍒?0錛屽叿浣撳鐞嗙粏鑺傛垜浠厛涓嶈錛屾潵鐪嬩竴涓嬫垜浠墍闇瑕佺殑processors鏄浣曞畾涔夌殑錛?br /> <span id="fl9tdlr" class="kwd"><span style="color: #008000"><span id="flv99r1" class="kwd">    final</span><span id="z9v39x9" class="pln"> </span><span id="x3rlnj3" class="typ">CellProcessor</span><span id="v9jlnbr" class="pun">[]</span><span id="1dnzt9t" class="pln"> processors </span><span id="39lvpn9" class="pun">=</span><span id="9rldhnd" class="pln"> </span><span id="39ddff9" class="kwd">new</span><span id="th9pjxd" class="pln"> </span><span id="z3pz9lv" class="typ">CellProcessor</span><span id="f39n99d" class="pun">[]</span><span id="9n9zn93" class="pln"> </span><span id="nhr3p9v" class="pun">{</span><span id="hv3vz9z" class="pln"><br />         </span><span id="r3fh9l9" class="kwd">new</span><span id="9lf9f9f" class="pln"> </span><span id="lh39rx3" class="typ">Unique</span><span id="rnhjbzx" class="pun">(</span><span id="pvf3jpf" class="kwd">new</span><span id="t99l999" class="pln"> </span><span id="ftt99jp" class="typ">StrMinMax</span><span id="ljn39l9" class="pun">(</span><span id="x3lnftt" class="lit">5</span><span id="3999l39" class="pun">,</span><span id="1z3399v" class="pln"> </span><span id="399x9tb" class="lit">20</span><span id="ljlxr99" class="pun">)),</span><span id="v39l9p9" class="pln"><br />         </span><span id="n3rt939" class="kwd">new</span><span id="9l99fdr" class="pln"> </span><span id="drt39rp" class="typ">StrMinMax</span><span id="99f99b9" class="pun">(</span><span id="b39jnv9" class="lit">8</span><span id="3tnr3fv" class="pun">,</span><span id="1r99xn9" class="pln"> </span><span id="rv3n3bp" class="lit">35</span><span id="jhr39p9" class="pun">),</span><span id="3r9xrhv" class="pln"><br />         </span><span id="p9l3tt9" class="kwd">new</span><span id="zvd9t3v" class="pln"> </span><span id="1999jx9" class="typ">ParseDate</span><span id="9npdxd9" class="pun">(</span><span id="fb9jv9v" class="str">"dd/MM/yyyy"</span><span id="dblz993" class="pun">),</span><span id="f3dpp39" class="pln"><br />     </span><span id="nbl3xtt" class="kwd">    new</span><span id="fj39zfv" class="pln"> </span><span id="9fzn9jz" class="typ">Optional</span><span id="99j9jh9" class="pun">(</span><span id="f33rlj9" class="kwd">new</span><span id="j9t9ljp" class="pln"> </span><span id="1v93d9p" class="typ">ParseInt</span><span id="zvphjhx" class="pun">()),</span><span id="1f39bzp" class="pln"><br />     </span><span id="n3b9thp" class="kwd">    null</span><span id="3td9t3n" class="pln"><br /> </span><span id="pd399vl" class="pun">    };</span></span></span><span id="x33d9bh" class="pun"><br /> 涓婇潰鐨勪唬鐮佺殑鍏蜂綋鎰忔濅負(fù)錛?br /> 絎竴鍒楁槸涓涓瓧絎︿覆錛屽茍涓斿兼槸鍞竴鐨勶紝闀垮害涓?鍒?0<br /> 絎簩鍒楁槸涓涓瓧絎︿覆錛岄暱搴︽槸8鍒?5<br /> 絎笁鍒椾負(fù)涓涓棩鏈熺被鍨嬶紝鏍煎紡涓哄ぉ/鏈?騫達(dá)紙day/month/year錛?br /> 絎洓鍒楁槸涓涓暣鍨嬫暟瀛楋紝浣嗗彧鏈夎繖鍒楁湁鍊肩殑鏃跺?span class="typ">ParseInt</span>澶勭悊鍣ㄦ墠浼?xì)鍘诲鐞啒q欎釜鍊鹼紙鍏跺疄灝辨槸璇ュ垪鍙互涓虹┖錛?br /> 絎簲鍒椾負(fù)涓涓瓧絎︿覆錛堥粯璁わ級(jí)錛屼笉浣跨敤澶勭悊鍣?br /> <br /> 濡傛灉浣犵殑CSV鏂囦歡娌℃湁澶達(dá)紝浣犱篃鍙互瀹氫箟涓暟緇勬潵鏇夸唬錛?br /> <span id="3zt9lh9" class="kwd"><span style="color: #008000"><span id="xt9p9xl" class="kwd">final</span><span id="xt39hnd" class="pln"> </span><span id="v3r99zn" class="typ">String</span><span id="9p9tfd9" class="pun">[]</span><span id="p9399hx" class="pln"> header </span><span id="v3t199p" class="pun">=</span><span id="t33j9pd" class="pln"> </span><span id="fnznndt" class="kwd">new</span><span id="3hrt3tz" class="pln"> </span><span id="plv9pnl" class="typ">String</span><span id="t3xlxlt" class="pun">[]</span><span id="vtdfz3t" class="pln"> </span><span id="1f9rdzp" class="pun">{</span><span id="v9dh9f9" class="pln"> </span><span id="99ntvbx" class="str">"username"</span><span id="l3fr9zx" class="pun">,</span><span id="39dx9br" class="pln"> </span><span id="3xht9rx" class="str">"password"</span><span id="ntnzjhx" class="pun">,</span><span id="r9t999x" class="pln"> </span><span id="x93h9jz" class="str">"date"</span><span id="tbdv99v" class="pun">,</span><span id="pxr39nt" class="pln"> </span><span id="p99zlr9" class="str">"zip"</span><span id="t9dn3h9" class="pun">,</span><span id="3zll9n3" class="pln"> </span><span id="j9b31bz" class="str">"town"</span><span id="9nxhnvr" class="pun">};</span></span></span><br /> 濡傛灉浣犳兂蹇界暐鏌愪竴鍒楋紝鍜屽畾涔夊鐞嗗櫒綾諱技錛岀洿鎺ュ湪澶存暟緇勪腑浣跨敤null銆?br /> <br /> 鍏ㄩ儴浠g爜濡備笅錛?br /> <span id="xfx3d93" class="kwd"><span style="color: #008000"><span id="9t3zr9l" class="kwd">import</span><span id="xv3pzpn" class="pln"> <a title="Java鐖卞ソ鑰? href="http://m.tkk7.com/rain1102">Java</a></span><span id="3rtv9h3" class="pun">.</span><span id="z1xrd9x" class="pln">io</span><span id="jhjlh3b" class="pun">.</span><span id="3p3t9p9" class="typ">FileReader</span><span id="z3prfnx" class="pun">;</span><span id="39hd3lj" class="pln"><br /> </span><span id="dn39d9v" class="kwd">import</span><span id="hp39r99" class="pln"> <a title="Java鐖卞ソ鑰? href="http://m.tkk7.com/rain1102">Java</a></span><span id="9999x9n" class="pun">.</span><span id="3999t39" class="pln">io</span><span id="99lnpft" class="pun">.</span><span id="vz39nxf" class="typ">IOException</span><span id="l99hl9j" class="pun">;</span><span id="99v9p9h" class="pln"><br /> </span><span id="f99lntj" class="kwd">import</span><span id="l9x3bb9" class="pln"> org</span><span id="3vx3z9r" class="pun">.</span><span id="bbdnzv1" class="pln">supercsv</span><span id="1zb93px" class="pun">.</span><span id="n3vfrh3" class="pln">cellprocessor</span><span id="xr9xj9h" class="pun">.</span><span id="zx3bt9n" class="typ">Optional</span><span id="vrb99r9" class="pun">;</span><span id="rnhz39d" class="pln"><br /> </span><span id="1h1999d" class="kwd">import</span><span id="njbnp93" class="pln"> org</span><span id="l9fhj99" class="pun">.</span><span id="9xj99xl" class="pln">supercsv</span><span id="lr3dxdt" class="pun">.</span><span id="339339r" class="pln">cellprocessor</span><span id="rnxhljh" class="pun">.</span><span id="f99jt9r" class="typ">ParseDate</span><span id="jnzt99h" class="pun">;</span><span id="bnzl9xv" class="pln"><br /> </span><span id="nd3hj99" class="kwd">import</span><span id="3hvpj9r" class="pln"> org</span><span id="rdft93p" class="pun">.</span><span id="n399999" class="pln">supercsv</span><span id="xldx3r9" class="pun">.</span><span id="9jdnzrr" class="pln">cellprocessor</span><span id="dlvptrf" class="pun">.</span><span id="nrl3npv" class="typ">ParseInt</span><span id="hdd93pf" class="pun">;</span><span id="b3ppjhv" class="pln"><br /> </span><span id="9rlnx3p" class="kwd">import</span><span id="f9999x9" class="pln"> org</span><span id="3df9br9" class="pun">.</span><span id="1bfxbrx" class="pln">supercsv</span><span id="93dv9bh" class="pun">.</span><span id="llfp3d9" class="pln">cellprocessor</span><span id="v3hb39n" class="pun">.</span><span id="bhr39hd" class="pln">constraint</span><span id="pl9pzv9" class="pun">.</span><span id="f99jd9v" class="typ">StrMinMax</span><span id="1bf9zf9" class="pun">;</span><span id="9dhj99n" class="pln"><br /> </span><span id="rnx3n39" class="kwd">import</span><span id="dhb3zp9" class="pln"> org</span><span id="x9jlzf9" class="pun">.</span><span id="dztvr99" class="pln">supercsv</span><span id="x3dvjp9" class="pun">.</span><span id="nln39p9" class="pln">cellprocessor</span><span id="n3x93zn" class="pun">.</span><span id="pdfzj3h" class="pln">constraint</span><span id="nnfrtzz" class="pun">.</span><span id="xvfztzj" class="typ">Unique</span><span id="3f9j9xd" class="pun">;</span><span id="ppr33t9" class="pln"><br /> </span><span id="xj3v999" class="kwd">import</span><span id="z3b99dr" class="pln"> org</span><span id="3dfr993" class="pun">.</span><span id="f3b9fd3" class="pln">supercsv</span><span id="dh999z9" class="pun">.</span><span id="xtvx3n9" class="pln">cellprocessor</span><span id="393pz9z" class="pun">.</span><span id="r9vhz9t" class="pln">ift</span><span id="z3xp9vb" class="pun">.</span><span id="rfh9vt3" class="typ">CellProcessor</span><span id="jxj39lj" class="pun">;</span><span id="39t9x99" class="pln"><br /> </span><span id="jnpztz9" class="kwd">import</span><span id="njdxh9d" class="pln"> org</span><span id="r99frp3" class="pun">.</span><span id="3rt9p9z" class="pln">supercsv</span><span id="999999l" class="pun">.</span><span id="ztdpzhz" class="pln">io</span><span id="9zjd99t" class="pun">.</span><span id="hv3bl9v" class="typ">CsvBeanReader</span><span id="xdn3l9f" class="pun">;</span><span id="th9919n" class="pln"><br /> </span><span id="d999d9l" class="kwd">import</span><span id="tzd3jpp" class="pln"> org</span><span id="3z9bd9d" class="pun">.</span><span id="bfzln33" class="pln">supercsv</span><span id="fnz9drl" class="pun">.</span><span id="n399rzj" class="pln">io</span><span id="tztv3vb" class="pun">.</span><span id="vr9hl9b" class="typ">ICsvBeanReader</span><span id="rxrtl99" class="pun">;</span><span id="fvpj9hn" class="pln"><br /> </span><span id="p9ln9vb" class="kwd">import</span><span id="b9hd39l" class="pln"> org</span><span id="p3lfphn" class="pun">.</span><span id="lx99zpx" class="pln">supercsv</span><span id="d33zddb" class="pun">.</span><span id="nvxzlrp" class="pln">prefs</span><span id="tzbdf1r" class="pun">.</span><span id="jvz9xnt" class="typ">CsvPreference</span><span id="rndfz3r" class="pun">;</span><span id="fdxhbj9" class="pln"><br /> <br /> </span><span id="b3t3lbz" class="kwd">class</span><span id="v9pz9nj" class="pln"> </span><span id="dz9vn9v" class="typ">ReadingObjects</span><span id="bhzvx9t" class="pln"> </span><span id="lr9dxxf" class="pun">{</span><span id="rfhjd3h" class="pln"><br /> <br />     </span><span id="d33x99d" class="kwd">static</span><span id="pv9999t" class="pln"> </span><span id="d39pjjx" class="kwd">final</span><span id="3ptv9zp" class="pln"> </span><span id="j39x9l9" class="typ">CellProcessor</span><span id="rfh13j9" class="pun">[]</span><span id="r3jdfxn" class="pln"> userProcessors </span><span id="v9hjdbp" class="pun">=</span><span id="jhrtn39" class="pln"> </span><span id="vztfrpf" class="kwd">new</span><span id="bvxtvjh" class="pln"> </span><span id="3f9zt99" class="typ">CellProcessor</span><span id="9r9td9v" class="pun">[]</span><span id="dh3jbj9" class="pln"> </span><span id="lhjbv3l" class="pun">{</span><span id="xbvf9j3" class="pln"><br />         </span><span id="3f9pjpd" class="kwd">new</span><span id="btdx39t" class="pln"> </span><span id="3r99h9z" class="typ">Unique</span><span id="zjlpzpd" class="pun">(</span><span id="bp9phfv" class="kwd">new</span><span id="bpt393v" class="pln"> </span><span id="pdvxzx3" class="typ">StrMinMax</span><span id="9zf99zh" class="pun">(</span><span id="3b99t99" class="lit">5</span><span id="db3399f" class="pun">,</span><span id="39z9ljp" class="pln"> </span><span id="vz3rdjz" class="lit">20</span><span id="3j3x9v3" class="pun">)),</span><span id="9ftv9lr" class="pln"><br />         </span><span id="3l9nx93" class="kwd">new</span><span id="rf399fl" class="pln"> </span><span id="j9dfpfd" class="typ">StrMinMax</span><span id="zxrbdb3" class="pun">(</span><span id="xj3dffl" class="lit">8</span><span id="pv9lvdj" class="pun">,</span><span id="3rp9hxv" class="pln"> </span><span id="999dd9f" class="lit">35</span><span id="9h3nzf9" class="pun">),</span><span id="39hrll9" class="pln"><br />         </span><span id="jvb3zhv" class="kwd">new</span><span id="vz9h99h" class="pln"> </span><span id="999lvdr" class="typ">ParseDate</span><span id="n9btn99" class="pun">(</span><span id="v9zb3zx" class="str">"dd/MM/yyyy"</span><span id="npn999n" class="pun">),</span><span id="1xlv39t" class="pln"><br />         </span><span id="d99z9fv" class="kwd">new</span><span id="3x9pzrp" class="pln"> </span><span id="19dpzhv" class="typ">Optional</span><span id="t9p9jz9" class="pun">(</span><span id="9hfh9l9" class="kwd">new</span><span id="r39bd3v" class="pln"> </span><span id="d3jtf39" class="typ">ParseInt</span><span id="nlvp3db" class="pun">()),</span><span id="zzbv9t3" class="pln"><br />         </span><span id="9rlv99v" class="kwd">null</span><span id="9hjtzx9" class="pln"><br />     </span><span id="vztvn3x" class="pun">};</span><span id="j99vhn9" class="pln"><br /> <br />     </span><span id="njlvp39" class="kwd">public</span><span id="h9jdfnl" class="pln"> </span><span id="j99lvlz" class="kwd">static</span><span id="399dxv3" class="pln"> </span><span id="9j9t9pv" class="kwd">void</span><span id="3pztl3d" class="pln"> main</span><span id="f3nfzvt" class="pun">(</span><span id="rrlnzxl" class="typ">String</span><span id="vn3zbhx" class="pun">[]</span><span id="3dfzbzf" class="pln"> args</span><span id="pnfx39f" class="pun">)</span><span id="x3b99zf" class="pln"> </span><span id="1fr99p9" class="kwd">throws</span><span id="bh39ljr" class="pln"> </span><span id="b39t9rx" class="typ">Exception</span><span id="f99b9p3" class="pln"> </span><span id="x9xhb39" class="pun">{</span><span id="9ztn9b3" class="pln"><br />         </span><span id="ln9hjxd" class="typ">ICsvBeanReader</span><span id="ddx99vb" class="pln"> inFile </span><span id="b9t9x99" class="pun">=</span><span id="9hbvvlb" class="pln"> </span><span id="zhrddtr" class="kwd">new</span><span id="jhzl39j" class="pln"> </span><span id="zlpr9xn" class="typ">CsvBeanReader</span><span id="9zbtnbb" class="pun">(</span><span id="rx93zxn" class="kwd">new</span><span id="3d9vfn9" class="pln"> </span><span id="h39tndj" class="typ">FileReader</span><span id="dtnnzx9" class="pun">(</span><span id="999dxv3" class="str">"foo.csv"</span><span id="xpb39p9" class="pun">),</span><span id="jjl3999" class="pln"> </span><span id="99lfxx9" class="typ">CsvPreference</span><span id="3v9x9dt" class="pun">.</span><span id="r9rd99t" class="pln">EXCEL_PREFERENCE</span><span id="3fj999h" class="pun">);</span><span id="19n9jhz" class="pln"><br />         </span><span id="1f9999d" class="kwd">try</span><span id="j3dn3l9" class="pln"> </span><span id="fjtnx39" class="pun">{</span><span id="1xjt9rp" class="pln"><br />           </span><span id="b9xhr9d" class="kwd">final</span><span id="3dx93jh" class="pln"> </span><span id="9jdphpf" class="typ">String</span><span id="nt9919h" class="pun">[]</span><span id="h9b93vt" class="pln"> header </span><span id="rv9zz99" class="pun">=</span><span id="39tv99b" class="pln"> inFile</span><span id="fzt3tjf" class="pun">.</span><span id="l3xz99f" class="pln">getCSVHeader</span><span id="hlv919f" class="pun">(</span><span id="v9933v3" class="kwd">true</span><span id="3zblflb" class="pun">);</span><span id="ltdf3l9" class="pln"><br />           </span><span id="9jdfz9j" class="typ">UserBean</span><span id="3dvh9lr" class="pln"> user</span><span id="fb9xhdl" class="pun">;</span><span id="1xjlhnd" class="pln"><br />           </span><span id="3n99z9l" class="kwd">while</span><span id="39v33pf" class="pun">(</span><span id="bxh39nt" class="pln"> </span><span id="39rt9rx" class="pun">(</span><span id="ndxrtjh" class="pln">user </span><span id="9pz9v3p" class="pun">=</span><span id="3rdfx99" class="pln"> inFile</span><span id="hv9tt9v" class="pun">.</span><span id="39r9399" class="pln">read</span><span id="nldpj33" class="pun">(</span><span id="zxtdftj" class="typ">UserBean</span><span id="39pztr9" class="pun">.</span><span id="d3xz9d3" class="kwd">class</span><span id="fvnhjpf" class="pun">,</span><span id="hnp9bhv" class="pln"> header</span><span id="z3llx9f" class="pun">,</span><span id="vv3j93t" class="pln"> userProcessors</span><span id="3zt9nnb" class="pun">))</span><span id="l3pr9fl" class="pln"> </span><span id="bpzlnd3" class="pun">!=</span><span id="39jv9bz" class="pln"> </span><span id="99tlxnj" class="kwd">null</span><span id="99lxrxn" class="pun">)</span><span id="pvzblb3" class="pln"> </span><span id="9x9xjxd" class="pun">{</span><span id="vt3x9th" class="pln"><br />             </span><span id="pl9f9lr" class="typ">System</span><span id="tf9hjzv" class="pun">.</span><span id="rnz9p3x" class="kwd">out</span><span id="hf9hzpf" class="pun">.</span><span id="lrld3dj" class="pln">println</span><span id="3p3jjzp" class="pun">(</span><span id="zhzbnb3" class="pln">user</span><span id="99prdj9" class="pun">.</span><span id="9fhrtb9" class="pln">getZip</span><span id="3fhrdrx" class="pun">());</span><span id="b399tzp" class="pln"><br />           </span><span id="39lfj9l" class="pun">}</span><span id="vztnxvl" class="pln"><br />         </span><span id="31r9999" class="pun">}</span><span id="9j399tj" class="pln"> </span><span id="9xp9vl9" class="kwd">finally</span><span id="9dxp9n9" class="pln"> </span><span id="1xzb33r" class="pun">{</span><span id="zl39v99" class="pln"><br />           inFile</span><span id="hnprtzz" class="pun">.</span><span id="11jdn9x" class="pln">close</span><span id="13bd9t9" class="pun">();</span><span id="xjnfzv3" class="pln"><br />         </span><span id="139ldtz" class="pun">}</span><span id="1jdnfvj" class="pln"><br />    </span><span id="lrjb9rr" class="pun">}</span><span id="3rbd19d" class="pln"><br /> </span><span id="lzjdnvb" class="pun">}</span><span id="rxjjf39" class="pln"><br /> <br /> <br /> <br /> </span><span id="39bnpvl" class="kwd">public</span><span id="vzlnpn3" class="pln"> </span><span id="rdn9jxn" class="kwd">class</span><span id="dj99jz9" class="pln"> </span><span id="z3dnhfb" class="typ">UserBean</span><span id="ftd39t9" class="pln"> </span><span id="zfhzt39" class="pun">{</span><span id="3blvz99" class="pln"><br />     </span><span id="njdxpnv" class="typ">String</span><span id="99zbnt9" class="pln"> username</span><span id="3tlfz99" class="pun">,</span><span id="bhhbv99" class="pln"> password</span><span id="39lxx9v" class="pun">,</span><span id="9b9v9hp" class="pln"> town</span><span id="3tx399v" class="pun">;</span><span id="l3tv99x" class="pln"><br />     </span><span id="lx339dj" class="typ">Date</span><span id="399f39n" class="pln"> date</span><span id="3hjvfvt" class="pun">;</span><span id="vrv9pnb" class="pln"><br />     </span><span id="d3vhjxn" class="kwd">int</span><span id="9xxr99z" class="pln"> zip</span><span id="9n9txnt" class="pun">;</span><span id="j3npj99" class="pln"><br /> <br />     </span><span id="xlvxrp3" class="kwd">public</span><span id="3dnhb9j" class="pln"> </span><span id="3jnf9v9" class="typ">Date</span><span id="xbd3h99" class="pln"> getDate</span><span id="1l9lv9d" class="pun">()</span><span id="1p3jl9t" class="pln"> </span><span id="nlvx3t9" class="pun">{</span><span id="n9lnx9f" class="pln"><br />         </span><span id="xxpz39z" class="kwd">return</span><span id="h3v9p9n" class="pln"> date</span><span id="n9bd3bb" class="pun">;</span><span id="lz1vrrj" class="pln"><br />     </span><span id="v39zt9r" class="pun">}</span><span id="tpj39z9" class="pln"><br /> <br />     </span><span id="39bf99t" class="kwd">public</span><span id="p9b9399" class="pln"> </span><span id="h39d9bp" class="typ">String</span><span id="999999d" class="pln"> getPassword</span><span id="z3jvjr9" class="pun">()</span><span id="39lnh9p" class="pln"> </span><span id="dv33jxn" class="pun">{</span><span id="nxj3zfl" class="pln"><br />         </span><span id="9f9pjt9" class="kwd">return</span><span id="ddfprhf" class="pln"> password</span><span id="bh9b9p9" class="pun">;</span><span id="9x3zbr9" class="pln"><br />     </span><span id="h99jvj9" class="pun">}</span><span id="t3hjd9n" class="pln"><br /> <br />     </span><span id="jh3l9jh" class="kwd">public</span><span id="fjlxpvt" class="pln"> </span><span id="r3p9rpv" class="typ">String</span><span id="hjd39h9" class="pln"> getTown</span><span id="3xl9n3f" class="pun">()</span><span id="v9hhbjh" class="pln"> </span><span id="xnhldt3" class="pun">{</span><span id="pz9zjp9" class="pln"><br />         </span><span id="n9l3x93" class="kwd">return</span><span id="vt3vpvt" class="pln"> town</span><span id="dl99v3d" class="pun">;</span><span id="33j3lbz" class="pln"><br />     </span><span id="dptl9b9" class="pun">}</span><span id="ntnpjz3" class="pln"><br /> <br />     </span><span id="jzj3xd9" class="kwd">public</span><span id="hhj99v9" class="pln"> </span><span id="pdp3999" class="typ">String</span><span id="xdn3p3p" class="pln"> getUsername</span><span id="3vp99p9" class="pun">()</span><span id="vbdzbrx" class="pln"> </span><span id="h3vpp9j" class="pun">{</span><span id="j9v99lv" class="pln"><br />         </span><span id="r99blbh" class="kwd">return</span><span id="xxp9pnt" class="pln"> username</span><span id="3td3bhx" class="pun">;</span><span id="f3j9bh9" class="pln"><br />     </span><span id="nlvjlzp" class="pun">}</span><span id="399rljp" class="pln"><br /> <br />     </span><span id="btvbtjx" class="kwd">public</span><span id="p399xnl" class="pln"> </span><span id="ntnlvd9" class="kwd">int</span><span id="xprl3rp" class="pln"> getZip</span><span id="r9fzbpf" class="pun">()</span><span id="f3999rp" class="pln"> </span><span id="9lxzhpt" class="pun">{</span><span id="13d3fv9" class="pln"><br />         </span><span id="j39t99v" class="kwd">return</span><span id="3t9pzp9" class="pln"> zip</span><span id="pbv19lj" class="pun">;</span><span id="3999rhv" class="pln"><br />     </span><span id="vfpzr3r" class="pun">}</span><span id="b9p99vj" class="pln"><br /> <br />     </span><span id="zv393xv" class="kwd">public</span><span id="lj3dx99" class="pln"> </span><span id="xnh999r" class="kwd">void</span><span id="r39nh93" class="pln"> setDate</span><span id="9pbdv9f" class="pun">(</span><span id="l3znpzn" class="kwd">final</span><span id="h33n9b3" class="pln"> </span><span id="39rd9pf" class="typ">Date</span><span id="lbdfpf3" class="pln"> date</span><span id="d3nxzxn" class="pun">)</span><span id="b1h9trf" class="pln"> </span><span id="99lnpn9" class="pun">{</span><span id="1t99n9p" class="pln"><br />         </span><span id="9prldth" class="kwd">this</span><span id="h3v99lt" class="pun">.</span><span id="vx39d33" class="pln">date </span><span id="bbvx9r9" class="pun">=</span><span id="b9d9n99" class="pln"> date</span><span id="3v9v9j9" class="pun">;</span><span id="39tfpf3" class="pln"><br />     </span><span id="nvxpjz9" class="pun">}</span><span id="dlzld33" class="pln"><br /> <br />     </span><span id="9vhjlzh" class="kwd">public</span><span id="pbd9vtr" class="pln"> </span><span id="zn3jl9f" class="kwd">void</span><span id="pn93jh9" class="pln"> setPassword</span><span id="3j9d9rp" class="pun">(</span><span id="thjlflt" class="kwd">final</span><span id="f3d9999" class="pln"> </span><span id="jlv9db9" class="typ">String</span><span id="ldvxzfn" class="pln"> password</span><span id="f3bdfdb" class="pun">)</span><span id="9pb9b99" class="pln"> </span><span id="9bnxzn3" class="pun">{</span><span id="njbl3j9" class="pln"><br />         </span><span id="9h9npfl" class="kwd">this</span><span id="3lnp99j" class="pun">.</span><span id="t39dxnl" class="pln">password </span><span id="3fp9pv9" class="pun">=</span><span id="r3n3fd9" class="pln"> password</span><span id="ntvfhxn" class="pun">;</span><span id="3zrldt9" class="pln"><br />     </span><span id="h3n9xnl" class="pun">}</span><span id="n9vrjzf" class="pln"><br /> <br />     </span><span id="pvhhl3d" class="kwd">public</span><span id="99dnz39" class="pln"> </span><span id="39b9djh" class="kwd">void</span><span id="ffx3xt9" class="pln"> setTown</span><span id="v3lxzfv" class="pun">(</span><span id="3jdnxnv" class="kwd">final</span><span id="b99j93j" class="pln"> </span><span id="x3tfxdt" class="typ">String</span><span id="z9dpz3j" class="pln"> town</span><span id="zt39zzf" class="pun">)</span><span id="3hln9rh" class="pln"> </span><span id="xzj3flz" class="pun">{</span><span id="zprj9tr" class="pln"><br />         </span><span id="pfh3jp9" class="kwd">this</span><span id="999xzf9" class="pun">.</span><span id="9pjtdtj" class="pln">town </span><span id="lxpjrhv" class="pun">=</span><span id="3hhlddb" class="pln"> town</span><span id="f39zthn" class="pun">;</span><span id="3pjlf99" class="pln"><br />     </span><span id="x9xrrrx" class="pun">}</span><span id="zr9hrfn" class="pln"><br /> <br />     </span><span id="j9dfp99" class="kwd">public</span><span id="xbv3999" class="pln"> </span><span id="3npj9ph" class="kwd">void</span><span id="lf3ln3x" class="pln"> setUsername</span><span id="jbvfppf" class="pun">(</span><span id="39zj9hn" class="kwd">final</span><span id="vr99br9" class="pln"> </span><span id="bj3vhnl" class="typ">String</span><span id="3t9rtrp" class="pln"> username</span><span id="x999ntz" class="pun">)</span><span id="jnhztr1" class="pln"> </span><span id="3tv99bp" class="pun">{</span><span id="99lhz3l" class="pln"><br />         </span><span id="hdn9pft" class="kwd">this</span><span id="3bvfxf9" class="pun">.</span><span id="xpzldj9" class="pln">username </span><span id="z3lnpvd" class="pun">=</span><span id="phhltv9" class="pln"> username</span><span id="l9hjb99" class="pun">;</span><span id="39tv999" class="pln"><br />     </span><span id="hn3zrpn" class="pun">}</span><span id="nlnxdj9" class="pln"><br /> <br />     </span><span id="jj39zxd" class="kwd">public</span><span id="ndvfrxv" class="pln"> </span><span id="3p93dj3" class="kwd">void</span><span id="bp3jthn" class="pln"> setZip</span><span id="r39dfn9" class="pun">(</span><span id="bdph99f" class="kwd">final</span><span id="ph3n999" class="pln"> </span><span id="vb3v9zp" class="kwd">int</span><span id="xdphrh3" class="pln"> zip</span><span id="fprt99h" class="pun">)</span><span id="3h99jxd" class="pln"> </span><span id="3999zz9" class="pun">{</span><span id="9n99pxd" class="pln"><br />         </span><span id="b939999" class="kwd">this</span><span id="xvvpj3l" class="pun">.</span><span id="3z9rbzf" class="pln">zip </span><span id="jdvhrff" class="pun">=</span><span id="39dnrnd" class="pln"> zip</span><span id="3ljxxx9" class="pun">;</span><span id="9rt9v9f" class="pln"><br />     </span><span id="9zjt9br" class="pun">}</span><span id="1z3r9fv" class="pln"><br /> <br /> </span><span id="3jdpr1b" class="pun">}</span></span></span><span id="rxhvzv3" class="pun"><br /> <br /> </span>濡傛灉浣犲湪璇誨彇鏂囦歡涔嬪墠鏍規(guī)湰涓嶇煡閬撴枃浠剁殑鍏蜂綋鏍煎紡錛屼綘鍙互閫夋嫨<tt>CsvListReader.read()</tt>鏂規(guī)硶錛屾妸姣忚璇誨嚭鍑烘潵鐨勬暟鎹斁鍦ㄤ竴涓狶ist閲岄潰銆?br /> <br /> 璇誨彇鏂囦歡鐨勪唬鐮佹垜浠湅鍒頒簡錛屼笅闈㈡潵鐪嬩竴涓嬪啓鐨勬搷浣滐紝涔熷緢綆鍗曘?br /> <span id="99zjvbj" class="kwd"><span style="color: #008000"><span id="bbd9d3d" class="kwd">import</span><span id="z3lnp9z" class="pln"> <a title="Java鐖卞ソ鑰? href="http://m.tkk7.com/rain1102">Java</a></span><span id="xnxhbzh" class="pun">.</span><span id="9dn9pn9" class="pln">util</span><span id="plf99th" class="pun">.</span><span id="9n99n99" class="typ">HashMap</span><span id="939zb9t" class="pun">;</span><span id="dz39p99" class="pln"><br /> </span><span id="t93n99x" class="kwd">import</span><span id="xf39fnd" class="pln"> org</span><span id="lz39f1p" class="pun">.</span><span id="3h9jd9v" class="pln">supercsv</span><span id="drdvpl9" class="pun">.</span><span id="rb93l9v" class="pln">io</span><span id="h3b9l1h" class="pun">.*;</span><span id="vvfh3f9" class="pln"><br /> </span><span id="x9j9nxd" class="kwd">import</span><span id="pf3h9vl" class="pln"> org</span><span id="9rt9xp9" class="pun">.</span><span id="3999v99" class="pln">supercsv</span><span id="r3dfrhv" class="pun">.</span><span id="3b93z9v" class="pln">prefs</span><span id="b999z9n" class="pun">.</span><span id="hlfh3vt" class="typ">CsvPreference</span><span id="tr3vp9v" class="pun">;</span><span id="39hrr9j" class="pln"><br /> <br /> </span><span id="jp9rtrx" class="kwd">class</span><span id="3jtd9bx" class="pln"> </span><span id="zv3v3z9" class="typ">WritingMaps</span><span id="b9p93nv" class="pln"> </span><span id="13r9b1x" class="pun">{</span><span id="lp3p3vj" class="pln"><br />   main</span><span id="3tv3np9" class="pun">(</span><span id="ll3f39z" class="typ">String</span><span id="t3prtrf" class="pun">[]</span><span id="9z999lj" class="pln"> args</span><span id="l3vpj99" class="pun">)</span><span id="r3fz9d9" class="pln"> </span><span id="lxd3hh9" class="kwd">throws</span><span id="3b9lvtz" class="pln"> </span><span id="t3p9999" class="typ">Exception</span><span id="brn399f" class="pln"> </span><span id="d3rblbr" class="pun">{</span><span id="rdjlx39" class="pln"><br />     </span><span id="brfp1vj" class="typ">ICsvMapWriter</span><span id="lp3z999" class="pln"> writer </span><span id="dt399fd" class="pun">=</span><span id="pft1x9r" class="pln"> </span><span id="99tdf9f" class="kwd">new</span><span id="rdp9b9p" class="pln"> </span><span id="pbd3999" class="typ">CsvMapWriter</span><span id="f3fprhv" class="pun">(</span><span id="f9ztd99" class="kwd">new</span><span id="jrt3btj" class="pln"> </span><span id="19blxld" class="typ">FileWriter</span><span id="ljlj99b" class="pun">(...),</span><span id="xb3j33j" class="pln"> </span><span id="x9bpdjz" class="typ">CsvPreference</span><span id="b9lvxv9" class="pun">.</span><span id="vfznfnj" class="pln">EXCEL_PREFERENCE</span><span id="pxrtvtj" class="pun">);</span><span id="pd939vb" class="pln"><br />     </span><span id="bn99d19" class="kwd">try</span><span id="bf3pvth" class="pln"> </span><span id="3bd99jx" class="pun">{</span><span id="z99tnt9" class="pln"><br />       </span><span id="9x999jz" class="kwd">final</span><span id="3rd9jr9" class="pln"> </span><span id="h9zbntp" class="typ">String</span><span id="1ppd339" class="pun">[]</span><span id="zlv3nhn" class="pln"> header </span><span id="xjlz9lv" class="pun">=</span><span id="9blfpn9" class="pln"> </span><span id="3pj9btb" class="kwd">new</span><span id="3zb9l3r" class="pln"> </span><span id="1tvjljz" class="typ">String</span><span id="fvf9399" class="pun">[]</span><span id="txj1nfd" class="pln"> </span><span id="39vzbh9" class="pun">{</span><span id="jzx3dnd" class="pln"> </span><span id="39h9bnh" class="str">"name"</span><span id="nfx93xv" class="pun">,</span><span id="3dr39lt" class="pln"> </span><span id="n3bd9l3" class="str">"city"</span><span id="rzj3pzf" class="pun">,</span><span id="99fr9pt" class="pln"> </span><span id="h9vfrxd" class="str">"zip"</span><span id="39v99xd" class="pln"> </span><span id="3jl9ftb" class="pun">};</span><span id="39rt9j9" class="pln"><br />       </span><span id="r399th3" class="com">// set up some data to write</span><span id="xl399r9" class="pln"><br />       </span><span id="z9jzr99" class="kwd">final</span><span id="lh9l9tz" class="pln"> </span><span id="31rtntr" class="typ">HashMap</span><span id="b9p999z" class="pun"><</span><span id="h3nxbr3" class="typ">String</span><span id="9pthrfv" class="pun">,</span><span id="39b93h9" class="pln"> </span><span id="399rjr9" class="pun">?</span><span id="39nz99j" class="pln"> </span><span id="9d9x9dl" class="kwd">super</span><span id="btv1399" class="pln"> </span><span id="1df399t" class="typ">Object</span><span id="jblj99t" class="pun">></span><span id="3dplp9r" class="pln"> data1 </span><span id="z9rdxv9" class="pun">=</span><span id="xxp3zhf" class="pln"> </span><span id="1j9fx9p" class="kwd">new</span><span id="z99tvb9" class="pln"> </span><span id="9h9919d" class="typ">HashMap</span><span id="99nprh9" class="pun"><</span><span id="npz31pn" class="typ">String</span><span id="d99df99" class="pun">,</span><span id="nvfl9z9" class="pln"> </span><span id="3v99h93" class="typ">Object</span><span id="b399px9" class="pun">>();</span><span id="brtz3v9" class="pln"><br />       data1</span><span id="ptd9fd9" class="pun">.</span><span id="3993bhb" class="pln">put</span><span id="bnhvpfx" class="pun">(</span><span id="9tnbd3d" class="pln">header</span><span id="f39tvjr" class="pun">[</span><span id="3p9b999" class="lit">0</span><span id="3d9pthn" class="pun">],</span><span id="3pvrljh" class="pln"> </span><span id="39p9rpn" class="str">"Karl"</span><span id="r3dfx99" class="pun">);</span><span id="33n9f3h" class="pln"><br />       data1</span><span id="bvf3399" class="pun">.</span><span id="hf9r3xx" class="pln">put</span><span id="9jdpj33" class="pun">(</span><span id="d3prtzz" class="pln">header</span><span id="hpjjdtr" class="pun">[</span><span id="rn3vxdt" class="lit">1</span><span id="xt399f9" class="pun">],</span><span id="hdn3pjz" class="pln"> </span><span id="tfrbdbr" class="str">"Tent city"</span><span id="1rdf9t9" class="pun">);</span><span id="jlf9pd3" class="pln"><br />       data1</span><span id="9x9hlz9" class="pun">.</span><span id="3fzd9hz" class="pln">put</span><span id="h9h99db" class="pun">(</span><span id="bvx3rh9" class="pln">header</span><span id="ztpr3hn" class="pun">[</span><span id="p3x9p99" class="lit">2</span><span id="j3h9r9d" class="pun">],</span><span id="3dfhr99" class="pln"> </span><span id="f3n3vl9" class="lit">5565</span><span id="plv3f9t" class="pun">);</span><span id="3n9rjrz" class="pln"><br />       </span><span id="htnlv3b" class="kwd">final</span><span id="3dfxj99" class="pln"> </span><span id="3lnhjx9" class="typ">HashMap</span><span id="ftlnx3f" class="pun"><</span><span id="dzj33nv" class="typ">String</span><span id="1fj3bhr" class="pun">,</span><span id="tnxzjr3" class="pln"> </span><span id="x9ptf99" class="pun">?</span><span id="rdv99rp" class="pln"> </span><span id="lxz3b91" class="kwd">super</span><span id="9vxrlzb" class="pln"> </span><span id="jvpzrh3" class="typ">Object</span><span id="9df9999" class="pun">></span><span id="lx9hr9d" class="pln"> data2 </span><span id="b9tvn9z" class="pun">=</span><span id="nx3rt9f" class="pln"> </span><span id="rh99rx9" class="kwd">new</span><span id="9zl99zx" class="pln"> </span><span id="l33vpdn" class="typ">HashMap</span><span id="3blfzph" class="pun"><</span><span id="jdxrlb3" class="typ">String</span><span id="nxz9jx9" class="pun">,</span><span id="xprb3xx" class="pln"> </span><span id="h399h9b" class="typ">Object</span><span id="d39vnln" class="pun">>();</span><span id="3rlf93p" class="pln"><br />       data2</span><span id="phtnxdf" class="pun">.</span><span id="j9n9fdz" class="pln">put</span><span id="3lx99t9" class="pun">(</span><span id="3999x3n" class="pln">header</span><span id="l3h9h9h" class="pun">[</span><span id="13vbtrr" class="lit">0</span><span id="3tn9h9p" class="pun">],</span><span id="ztfprfv" class="pln"> </span><span id="3t93br9" class="str">"Banjo"</span><span id="dnphlr3" class="pun">);</span><span id="t3t99th" class="pln"><br />       data2</span><span id="t33ljzn" class="pun">.</span><span id="99dht9j" class="pln">put</span><span id="1nzbvjz" class="pun">(</span><span id="9vhj999" class="pln">header</span><span id="z9hzd9d" class="pun">[</span><span id="rvxzrrf" class="lit">1</span><span id="3df9dtr" class="pun">],</span><span id="ld3pzp3" class="pln"> </span><span id="39vprx9" class="str">"River side"</span><span id="j939fdt" class="pun">);</span><span id="hbdx3lr" class="pln"><br />       data2</span><span id="hlvfz3r" class="pun">.</span><span id="9ppldl3" class="pln">put</span><span id="99xjbjx" class="pun">(</span><span id="d9x9pxt" class="pln">header</span><span id="nbvn9d9" class="pun">[</span><span id="lb9n9bz" class="lit">2</span><span id="d99b9pv" class="pun">],</span><span id="hrtvpd3" class="pln"> </span><span id="nrr9thz" class="lit">5551</span><span id="3fhrdj9" class="pun">);</span><span id="fzblnl3" class="pln"><br />       </span><span id="ftv9rp9" class="com">// the actual writing</span><span id="nnx13nd" class="pln"><br />       writer</span><span id="j3fzr9b" class="pun">.</span><span id="x3d9n3f" class="pln">writeHeader</span><span id="33pr9nj" class="pun">(</span><span id="b9xz9pn" class="pln">header</span><span id="n3bd99x" class="pun">);</span><span id="99fjtrn" class="pln"><br />       writer</span><span id="3dhj39z" class="pun">.</span><span id="x3fhbz9" class="pln">write</span><span id="fl9xzff" class="pun">(</span><span id="pdx39tb" class="pln">data1</span><span id="3p9z399" class="pun">,</span><span id="pt99xl9" class="pln"> header</span><span id="bzb3fnl" class="pun">);</span><span id="hv3lntb" class="pln"><br />       writer</span><span id="zjd9xvv" class="pun">.</span><span id="39jt9th" class="pln">write</span><span id="zvhlfll" class="pun">(</span><span id="vlv3pnt" class="pln">data2</span><span id="3r93rh9" class="pun">,</span><span id="993p9lt" class="pln"> header</span><span id="fvnt9lr" class="pun">);</span><span id="ljlxznb" class="pln"><br />     </span><span id="n9jbdt3" class="pun">}</span><span id="99bd9hn" class="pln"> </span><span id="3dpr399" class="kwd">finally</span><span id="rp9tvlj" class="pln"> </span><span id="1ln9z9b" class="pun">{</span><span id="9dh93br" class="pln"><br />       writer</span><span id="z1v9zx9" class="pun">.</span><span id="jnhr3fd" class="pln">close</span><span id="txhbx9t" class="pun">();</span><span id="plfhzxn" class="pln"><br />     </span><span id="3pj9bzx" class="pun">}</span><span id="rv3z9jr" class="pln"><br />   </span><span id="zvxhbhf" class="pun">}</span><span id="xrlnhfl" class="pln"><br /> </span><span id="plfxjhf" class="pun">}</span></span></span><br /> </span></tt><img src ="http://m.tkk7.com/rain1102/aggbug/295760.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/rain1102/" target="_blank">Eric.Zhou</a> 2009-09-20 17:48 <a href="http://m.tkk7.com/rain1102/archive/2009/09/20/295760.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>浣跨敤dom4j瑙f瀽XML鏃跺欏拷鐣TD鏂囦歡http://m.tkk7.com/rain1102/archive/2009/08/06/290063.htmlEric.ZhouEric.ZhouThu, 06 Aug 2009 03:17:00 GMThttp://m.tkk7.com/rain1102/archive/2009/08/06/290063.htmlhttp://m.tkk7.com/rain1102/comments/290063.htmlhttp://m.tkk7.com/rain1102/archive/2009/08/06/290063.html#Feedback1http://m.tkk7.com/rain1102/comments/commentRss/290063.htmlhttp://m.tkk7.com/rain1102/services/trackbacks/290063.html瑕佽繖涔堝仛鏄洜涓篠erver榪斿洖緇欐垜浠殑XML鑲畾鏄悎娉曠殑錛屼笉闇瑕侀獙璇併?/p>

鑰岃緗笉闇瑕侀獙璇侊紝鍙渶瑕佽緗瓺ocumentBuilderFactory.setValidating錛坒alse錛夊氨鍙互杈懼埌鏁堟灉浜嗭紝浣嗘槸瑙f瀽鍣ㄨ繕鏄細(xì)璇誨彇DTD鐨勶紝瑙e喅鐨勬柟娉曟槸瀹炵幇EntityResolver鎺ュ彛錛屽叿浣撲唬鐮佸涓嬶細(xì)

package com.founder.demo;

import Java.io.ByteArrayInputStream;
import Java.io.IOException;

import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

public class IgnoreDTDEntityResolver implements EntityResolver {

 @Override
 public InputSource resolveEntity(String publicId, String systemId)
   throws SAXException, IOException {
        return new InputSource(new ByteArrayInputStream("<?xml version='1.0' encoding='UTF-8'?>".getBytes()));
 }

}

鐒跺悗璁劇疆SAXReader 瀵硅薄濡備笅錛?br /> SAXReader reader = new SAXReader();
reader.setEntityResolver(new IgnoreDTDEntityResolver()); // ignore dtd

涓鍒噊k銆?/p>

Eric.Zhou 2009-08-06 11:17 鍙戣〃璇勮
]]>
鏁版嵁杞崲寮曟搸錛歋mooks [杞澆]http://m.tkk7.com/rain1102/archive/2009/08/04/289847.htmlEric.ZhouEric.ZhouTue, 04 Aug 2009 12:00:00 GMThttp://m.tkk7.com/rain1102/archive/2009/08/04/289847.htmlhttp://m.tkk7.com/rain1102/comments/289847.htmlhttp://m.tkk7.com/rain1102/archive/2009/08/04/289847.html#Feedback0http://m.tkk7.com/rain1102/comments/commentRss/289847.htmlhttp://m.tkk7.com/rain1102/services/trackbacks/289847.html闃呰鍏ㄦ枃

Eric.Zhou 2009-08-04 20:00 鍙戣〃璇勮
]]>
鍥涚鎿嶄綔xml鐨勬柟寮忥細(xì) SAX, DOM, JDOM , DOM4J鐨勬瘮杈僛杞澆]http://m.tkk7.com/rain1102/archive/2009/06/20/283349.htmlEric.ZhouEric.ZhouSat, 20 Jun 2009 06:09:00 GMThttp://m.tkk7.com/rain1102/archive/2009/06/20/283349.htmlhttp://m.tkk7.com/rain1102/comments/283349.htmlhttp://m.tkk7.com/rain1102/archive/2009/06/20/283349.html#Feedback0http://m.tkk7.com/rain1102/comments/commentRss/283349.htmlhttp://m.tkk7.com/rain1102/services/trackbacks/283349.html

1. 浠嬬粛

1錛塂OM(JAXP Crimson瑙f瀽鍣?
        DOM鏄敤涓庡鉤鍙板拰璇█鏃犲叧鐨勬柟寮忚〃紺篨ML鏂囨。鐨勫畼鏂筗3C鏍囧噯銆侱OM鏄互灞傛緇撴瀯緇勭粐鐨勮妭鐐規(guī)垨淇℃伅鐗囨柇鐨勯泦鍚堛傝繖涓眰嬈$粨鏋勫厑璁稿紑鍙戜漢鍛樺湪鏍?wèi)涓L壘鐗瑰畾淇℃伅銆傚垎鏋愯緇撴瀯閫氬父闇瑕佸姞杞芥暣涓枃妗e拰鏋勯犲眰嬈$粨鏋勶紝鐒跺悗鎵嶈兘鍋氫換浣曞伐浣溿傜敱浜庡畠鏄熀浜庝俊鎭眰嬈$殑錛屽洜鑰孌OM琚涓烘槸鍩轟簬鏍?wèi)鎴栧熮Z簬瀵硅薄鐨勩侱OM浠ュ強(qiáng)騫夸箟鐨勫熀浜庢爲(wèi)鐨勫鐞嗗叿鏈夊嚑涓紭鐐廣傞鍏堬紝鐢變簬鏍?wèi)鍦ㄥ唴瀛樹腑鏄寔涔呯殑锛屽洜姝ゅ彲浠ヤ慨鏀瑰畠浠ヤ究搴旂敤绋嬪簭鑳藉?guī)暟鎹拰緇撴瀯浣滃嚭鏇存敼銆傚畠榪樺彲浠ュ湪浠諱綍鏃跺欏湪鏍?wèi)涓笂涓嬪D埅錛岃屼笉鏄儚SAX閭f牱鏄竴嬈℃х殑澶勭悊銆侱OM浣跨敤璧鋒潵涔熻綆鍗曞緱澶氥?/p>

2錛塖AX

        SAX澶勭悊鐨勪紭鐐歸潪甯哥被浼間簬嫻佸獟浣撶殑浼樼偣銆傚垎鏋愯兘澶熺珛鍗沖紑濮嬶紝鑰屼笉鏄瓑寰呮墍鏈夌殑鏁版嵁琚鐞嗐傝屼笖錛岀敱浜庡簲鐢ㄧ▼搴忓彧鏄湪璇誨彇鏁版嵁鏃舵鏌ユ暟鎹紝鍥犳涓嶉渶瑕佸皢鏁版嵁瀛樺偍鍦ㄥ唴瀛樹腑銆傝繖瀵逛簬澶у瀷鏂囨。鏉ヨ鏄釜宸ㄥぇ鐨勪紭鐐廣備簨瀹炰笂錛屽簲鐢ㄧ▼搴忕敋鑷充笉蹇呰В鏋愭暣涓枃妗o紱瀹冨彲浠ュ湪鏌愪釜鏉′歡寰楀埌婊¤凍鏃跺仠姝㈣В鏋愩備竴鑸潵璇達(dá)紝SAX榪樻瘮瀹冪殑鏇夸唬鑰匘OM蹇澶氥?
 銆銆閫夋嫨DOM榪樻槸閫夋嫨SAX錛?瀵逛簬闇瑕佽嚜宸辯紪鍐欎唬鐮佹潵澶勭悊XML鏂囨。鐨勫紑鍙戜漢鍛樻潵璇達(dá)紝  閫夋嫨DOM榪樻槸SAX瑙f瀽妯″瀷鏄竴涓潪甯擱噸瑕佺殑璁捐鍐崇瓥銆?DOM閲囩敤寤虹珛鏍?wèi)迮灳l撴瀯鐨勬柟寮忚闂甔ML鏂囨。錛岃孲AX閲囩敤鐨勪簨浠舵ā鍨嬨?

銆銆DOM瑙f瀽鍣ㄦ妸XML鏂囨。杞寲涓轟竴涓寘鍚叾鍐呭鐨勬爲(wèi)錛屽茍鍙互瀵規(guī)爲(wèi)榪涜閬嶅巻銆傜敤DOM瑙f瀽妯″瀷鐨勪紭鐐規(guī)槸緙栫▼瀹規(guī)槗錛屽紑鍙戜漢鍛樺彧闇瑕佽皟鐢ㄥ緩鏍?wèi)鐨勬寚渥o(hù)錛岀劧鍚庡埄鐢╪avigation APIs璁塊棶鎵闇鐨勬爲(wèi)鑺傜偣鏉ュ畬鎴愪換鍔°傚彲浠ュ緢瀹規(guī)槗鐨勬坊鍔犲拰淇敼鏍?wèi)涓殑鍏冪礌銆傜劧鑰岀敱浜庝嬌鐢―OM瑙f瀽鍣ㄧ殑鏃跺欓渶瑕佸鐞嗘暣涓猉ML鏂囨。錛屾墍浠ュ鎬ц兘鍜屽唴瀛樼殑瑕佹眰姣旇緝楂橈紝灝ゅ叾鏄亣鍒板緢澶х殑XML鏂囦歡鐨勬椂鍊欍傜敱浜庡畠鐨勯亶鍘嗚兘鍔涳紝DOM瑙f瀽鍣ㄥ父鐢ㄤ簬XML鏂囨。闇瑕侀綣佺殑鏀瑰彉鐨勬湇鍔′腑銆?

銆銆SAX瑙f瀽鍣ㄩ噰鐢ㄤ簡鍩轟簬浜嬩歡鐨勬ā鍨嬶紝瀹冨湪瑙f瀽XML鏂囨。鐨勬椂鍊欏彲浠ヨЕ鍙戜竴緋誨垪鐨勪簨浠訛紝褰撳彂鐜扮粰瀹氱殑tag鐨勬椂鍊欙紝瀹冨彲浠ユ縺媧諱竴涓洖璋冩柟娉曪紝鍛婅瘔璇ユ柟娉曞埗瀹氱殑鏍囩宸茬粡鎵懼埌銆係AX瀵瑰唴瀛樼殑瑕佹眰閫氬父浼?xì)姣旇緝浣庡Q屽洜涓哄畠璁╁紑鍙戜漢鍛樿嚜宸辨潵鍐沖畾鎵瑕佸鐞嗙殑tag銆傜壒鍒槸褰撳紑鍙戜漢鍛樺彧闇瑕佸鐞嗘枃妗d腑鎵鍖呭惈鐨勯儴鍒嗘暟鎹椂錛孲AX榪欑鎵╁睍鑳藉姏寰楀埌浜嗘洿濂界殑浣撶幇銆備絾鐢⊿AX瑙f瀽鍣ㄧ殑鏃跺欑紪鐮佸伐浣滀細(xì)姣旇緝鍥伴毦錛岃屼笖寰堥毦鍚屾椂璁塊棶鍚屼竴涓枃妗d腑鐨勫澶勪笉鍚屾暟鎹?

3錛塉DOM           http://www.jdom.org/

          JDOM鐨勭洰鐨勬槸鎴愪負(fù)Java鐗瑰畾鏂囨。妯″瀷錛屽畠綆鍖栦笌XML鐨勪氦浜掑茍涓旀瘮浣跨敤DOM瀹炵幇鏇村揩銆傜敱浜庢槸絎竴涓狫ava鐗瑰畾妯″瀷錛孞DOM涓鐩村緱鍒板ぇ鍔涙帹騫垮拰淇冭繘銆傛鍦ㄨ冭檻閫氳繃“Java瑙勮寖璇鋒眰JSR-102”灝嗗畠鏈緇堢敤浣?#8220;Java鏍囧噯鎵╁睍”銆備粠2000騫村垵灝卞凡緇忓紑濮嬩簡JDOM寮鍙戙?

銆銆JDOM涓嶥OM涓昏鏈変袱鏂歸潰涓嶅悓銆傞鍏堬紝JDOM浠呬嬌鐢ㄥ叿浣撶被鑰屼笉浣跨敤鎺ュ彛銆傝繖鍦ㄦ煇浜涙柟闈㈢畝鍖栦簡API錛屼絾鏄篃闄愬埗浜嗙伒媧繪с傜浜岋紝API澶ч噺浣跨敤浜咰ollections綾伙紝綆鍖栦簡閭d簺宸茬粡鐔熸?zhèn)墭q欎簺綾葷殑Java寮鍙戣呯殑浣跨敤銆?

銆銆JDOM鏂囨。澹版槑鍏剁洰鐨勬槸“浣跨敤20%(鎴栨洿灝?鐨勭簿鍔涜В鍐?0%(鎴栨洿澶?Java/XML闂”(鏍規(guī)嵁瀛︿範(fàn)鏇茬嚎鍋囧畾涓?0%)銆侸DOM瀵逛簬澶у鏁癑ava/XML搴旂敤紼嬪簭鏉ヨ褰撶劧鏄湁鐢ㄧ殑錛屽茍涓斿ぇ澶氭暟寮鍙戣呭彂鐜癆PI姣擠OM瀹規(guī)槗鐞嗚В寰楀銆侸DOM榪樺寘鎷紼嬪簭琛屼負(fù)鐨勭浉褰撳箍娉涙鏌ヤ互闃叉鐢ㄦ埛鍋氫換浣曞湪XML涓棤鎰忎箟鐨勪簨銆傜劧鑰岋紝瀹冧粛闇瑕佹?zhèn)ㄥ厖鍒嗙悊瑙ML浠ヤ究鍋氫竴浜涜秴鍑哄熀鏈殑宸ヤ綔(鎴栬呯敋鑷崇悊瑙f煇浜涙儏鍐典笅鐨勯敊璇?銆傝繖涔熻鏄瘮瀛︿範(fàn)DOM鎴朖DOM鎺ュ彛閮芥洿鏈夋剰涔夌殑宸ヤ綔銆?

銆銆JDOM鑷韓涓嶅寘鍚В鏋愬櫒銆傚畠閫氬父浣跨敤SAX2瑙f瀽鍣ㄦ潵瑙f瀽鍜岄獙璇佽緭鍏ML鏂囨。(灝界瀹冭繕鍙互灝嗕互鍓嶆瀯閫犵殑DOM琛ㄧず浣滀負(fù)杈撳叆)銆傚畠鍖呭惈涓浜涜漿鎹㈠櫒浠ュ皢JDOM琛ㄧず杈撳嚭鎴怱AX2浜嬩歡嫻併丏OM妯″瀷鎴朮ML鏂囨湰鏂囨。銆侸DOM鏄湪Apache璁稿彲璇佸彉浣撲笅鍙戝竷鐨勫紑鏀炬簮鐮併?/p>

4錛塂OM4J http://dom4j.sourceforge.net/ 
            
        铏界劧DOM4J浠h〃浜嗗畬鍏ㄧ嫭绔嬬殑寮鍙戠粨鏋滐紝浣嗘渶鍒濓紝瀹冩槸JDOM鐨勪竴縐嶆櫤鑳藉垎鏀傚畠鍚堝茍浜嗚澶氳秴鍑哄熀鏈琗ML鏂囨。琛ㄧず鐨勫姛鑳斤紝鍖呮嫭闆嗘垚鐨刋Path鏀寔銆乆ML Schema鏀寔浠ュ強(qiáng)鐢ㄤ簬澶ф枃妗f垨嫻佸寲鏂囨。鐨勫熀浜庝簨浠剁殑澶勭悊銆傚畠榪樻彁渚涗簡鏋勫緩鏂囨。琛ㄧず鐨勯夐」錛屽畠閫氳繃DOM4J API鍜屾爣鍑咲OM鎺ュ彛鍏鋒湁騫惰璁塊棶鍔熻兘銆備粠2000涓嬪崐騫村紑濮嬶紝瀹冨氨涓鐩村浜庡紑鍙戜箣涓?

銆銆涓烘敮鎸佹墍鏈夎繖浜涘姛鑳斤紝DOM4J浣跨敤鎺ュ彛鍜屾娊璞″熀鏈被鏂規(guī)硶銆侱OM4J澶ч噺浣跨敤浜咥PI涓殑Collections綾伙紝浣嗘槸鍦ㄨ澶氭儏鍐典笅錛屽畠榪樻彁渚涗竴浜涙浛浠f柟娉曚互鍏佽鏇村ソ鐨勬ц兘鎴栨洿鐩存帴鐨勭紪鐮佹柟娉曘傜洿鎺ュソ澶勬槸錛岃櫧鐒禗OM4J浠樺嚭浜嗘洿澶嶆潅鐨凙PI鐨勪唬浠鳳紝浣嗘槸瀹冩彁渚涗簡姣擩DOM澶у緱澶氱殑鐏墊椿鎬с?

銆銆鍦ㄦ坊鍔犵伒媧繪с乆Path闆嗘垚鍜屽澶ф枃妗e鐞嗙殑鐩爣鏃訛紝DOM4J鐨勭洰鏍囦笌JDOM鏄竴鏍風(fēng)殑錛氶拡瀵笿ava寮鍙戣呯殑鏄撶敤鎬у拰鐩磋鎿嶄綔銆傚畠榪樿嚧鍔涗簬鎴愪負(fù)姣擩DOM鏇村畬鏁寸殑瑙e喅鏂規(guī)錛屽疄鐜板湪鏈川涓婂鐞嗘墍鏈塉ava/XML闂鐨勭洰鏍囥傚湪瀹屾垚璇ョ洰鏍囨椂錛屽畠姣擩DOM鏇村皯寮鴻皟闃叉涓嶆紜殑搴旂敤紼嬪簭琛屼負(fù)銆?

銆銆DOM4J鏄竴涓潪甯擱潪甯鎬紭縐鐨凧ava XML API錛屽叿鏈夋ц兘浼樺紓銆佸姛鑳藉己澶у拰鏋佺鏄撶敤浣跨敤鐨勭壒鐐癸紝鍚屾椂瀹冧篃鏄竴涓紑鏀炬簮浠g爜鐨勮蔣浠躲傚浠婁綘鍙互鐪嬪埌瓚婃潵瓚婂鐨凧ava杞歡閮藉湪浣跨敤DOM4J鏉ヨ鍐橷ML錛岀壒鍒煎緱涓鎻愮殑鏄繛Sun鐨凧AXM涔熷湪鐢―OM4J銆?

2.. 姣旇緝

1錛塂OM4J鎬ц兘鏈濂斤紝榪濻un鐨凧AXM涔熷湪鐢―OM4J銆傜洰鍓嶈澶氬紑婧愰」鐩腑澶ч噺閲囩敤DOM4J錛屼緥濡傚ぇ鍚嶉紟榧庣殑Hibernate涔熺敤DOM4J鏉ヨ鍙朮ML閰嶇疆鏂囦歡銆傚鏋滀笉鑰冭檻鍙Щ妞嶆э紝閭e氨閲囩敤DOM4J.

2錛塉DOM鍜孌OM鍦ㄦц兘嫻嬭瘯鏃惰〃鐜頒笉浣籌紝鍦ㄦ祴璇?0M鏂囨。鏃跺唴瀛樻孩鍑恒傚湪灝忔枃妗f儏鍐典笅榪樺煎緱鑰冭檻浣跨敤DOM鍜孞DOM銆傝櫧鐒禞DOM鐨勫紑鍙戣呭凡緇忚鏄庝粬浠湡鏈涘湪姝e紡鍙戣鐗堝墠涓撴敞鎬ц兘闂錛屼絾鏄粠鎬ц兘瑙傜偣鏉ョ湅錛屽畠紜疄娌℃湁鍊煎緱鎺ㄨ崘涔嬪銆傚彟澶栵紝DOM浠嶆槸涓涓潪甯稿ソ鐨勯夋嫨銆侱OM瀹炵幇騫挎硾搴旂敤浜庡縐嶇紪紼嬭璦銆傚畠榪樻槸璁稿鍏跺畠涓嶺ML鐩稿叧鐨勬爣鍑嗙殑鍩虹錛屽洜涓哄畠姝e紡鑾峰緱W3C鎺ㄨ崘(涓庡熀浜庨潪鏍囧噯鐨凧ava妯″瀷鐩稿)錛屾墍浠ュ湪鏌愪簺綾誨瀷鐨勯」鐩腑鍙兘涔熼渶瑕佸畠(濡傚湪JavaScript涓嬌鐢―OM)銆?/p>

3錛塖AX琛ㄧ幇杈冨ソ錛岃繖瑕佷緷璧栦簬瀹冪壒瀹氱殑瑙f瀽鏂瑰紡錛嶄簨浠墮┍鍔ㄣ備竴涓猄AX媯(gè)嫻嬪嵆灝嗗埌鏉ョ殑XML嫻侊紝浣嗗茍娌℃湁杞藉叆鍒板唴瀛?褰撶劧褰揦ML嫻佽璇誨叆鏃訛紝浼?xì)鏈夐儴鍒嗘枃妗f殏鏃堕殣钘忓湪鍐呭瓨涓?銆?/p>

3. 鍥涚xml鎿嶄綔鏂瑰紡鐨勫熀鏈嬌鐢ㄦ柟娉?/p>

xml鏂囦歡錛?/p>

<?xml version="1.0" encoding="utf-8" ?>
<Result>
   <VALUE>
       <NO DATE="2005">A1</NO>
       <ADDR>GZ</ADDR>
   </VALUE>
   <VALUE>
       <NO DATE="2004">A2</NO>
       <ADDR>XG</ADDR>
  </VALUE>
</Result>

1錛塂OM

import Java.io.*;
import Java.util.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;

public class MyXMLReader{
銆public static void main(String arge[]){

銆銆long lasting =System.currentTimeMillis();
銆銆try{ 
銆銆銆File f=new File("data_10k.xml");
銆銆銆DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
銆銆銆DocumentBuilder builder=factory.newDocumentBuilder();
銆銆銆Document doc = builder.parse(f);
銆銆銆NodeList nl = doc.getElementsByTagName("VALUE");
銆銆銆for (int i=0;i錛渘l.getLength();i++){
銆銆銆銆System.out.print("杞︾墝鍙風(fēng)爜:" + doc.getElementsByTagName("NO").item(i).getFirstChild().getNodeValue());
銆銆銆銆System.out.println("杞︿富鍦板潃:" + doc.getElementsByTagName("ADDR").item(i).getFirstChild().getNodeValue());
銆 銆}
銆銆}catch(Exception e){
銆銆銆e.printStackTrace();
}

2錛塖AX

import org.xml.sax.*;
import org.xml.sax.helpers.*;
import javax.xml.parsers.*;

public class MyXMLReader extends DefaultHandler {

Java.util.Stack tags = new Java.util.Stack();
銆public MyXMLReader() {
銆銆super();
   }

銆public static void main(String args[]) {
銆銆long lasting = System.currentTimeMillis();
銆銆try {
銆銆銆SAXParserFactory sf = SAXParserFactory.newInstance();
銆銆銆SAXParser sp = sf.newSAXParser();
銆銆銆MyXMLReader reader = new MyXMLReader();
銆銆銆sp.parse(new InputSource("data_10k.xml"), reader);
銆銆} catch (Exception e) {
銆銆銆e.printStackTrace();
銆銆}

銆銆System.out.println("榪愯鏃墮棿錛? + (System.currentTimeMillis() - lasting) + "姣");}
銆銆public void characters(char ch[], int start, int length) throws SAXException {
銆銆String tag = (String) tags.peek();
銆銆if (tag.equals("NO")) { 
銆銆銆System.out.print("杞︾墝鍙風(fēng)爜錛? + new String(ch, start, length));
    }
    if (tag.equals("ADDR")) {
銆銆System.out.println("鍦板潃:" + new String(ch, start, length));
    }
   }

銆銆public void startElement(String uri,String localName,String qName,Attributes attrs) {
銆銆tags.push(qName);}

3錛?JDOM

import Java.io.*;
import Java.util.*;
import org.jdom.*;
import org.jdom.input.*;

public class MyXMLReader {

銆public static void main(String arge[]) {
銆銆long lasting = System.currentTimeMillis();
銆銆try {
銆銆銆SAXBuilder builder = new SAXBuilder(); 
銆銆銆Document doc = builder.build(new File("data_10k.xml")); 
銆銆銆Element foo = doc.getRootElement(); 
銆銆銆List allChildren = foo.getChildren(); 
銆銆銆for(int i=0;i錛渁llChildren.size();i++) { 
銆銆銆銆System.out.print("杞︾墝鍙風(fēng)爜:" + ((Element)allChildren.get(i)).getChild("NO").getText());
銆銆銆銆System.out.println("杞︿富鍦板潃:" + ((Element)allChildren.get(i)).getChild("ADDR").getText());
銆銆銆}
銆銆} catch (Exception e) {
銆銆銆e.printStackTrace();
}

}

4錛塂OM4J

import Java.io.*;
import Java.util.*;
import org.dom4j.*;
import org.dom4j.io.*;

public class MyXMLReader {

銆public static void main(String arge[]) {
銆銆long lasting = System.currentTimeMillis();
銆銆try {
銆銆銆File f = new File("data_10k.xml");
銆銆銆SAXReader reader = new SAXReader();
銆銆銆Document doc = reader.read(f);
銆銆銆Element root = doc.getRootElement();
銆銆銆Element foo;
銆銆銆for (Iterator i = root.elementIterator("VALUE"); i.hasNext();) {
銆銆銆銆foo = (Element) i.next();
銆銆銆銆System.out.print("杞︾墝鍙風(fēng)爜:" + foo.elementText("NO"));
銆銆銆銆System.out.println("杞︿富鍦板潃:" + foo.elementText("ADDR"));
銆銆銆}
銆銆} catch (Exception e) {
銆銆銆e.printStackTrace();
    }
}



Eric.Zhou 2009-06-20 14:09 鍙戣〃璇勮
]]>
XML鍜孞SON鍝嶅簲http://m.tkk7.com/rain1102/archive/2008/06/05/206078.htmlEric.ZhouEric.ZhouThu, 05 Jun 2008 08:21:00 GMThttp://m.tkk7.com/rain1102/archive/2008/06/05/206078.htmlhttp://m.tkk7.com/rain1102/comments/206078.htmlhttp://m.tkk7.com/rain1102/archive/2008/06/05/206078.html#Feedback0http://m.tkk7.com/rain1102/comments/commentRss/206078.htmlhttp://m.tkk7.com/rain1102/services/trackbacks/206078.html浣跨敤render鏂規(guī)硶杈撳嚭XML

Grails鏀寔涓浜涗笉鍚岀殑鏂規(guī)硶鏉ヤ駭鐢焁ML鍜孞SON鍝嶅簲銆傜涓涓槸闅愬紡鐨勯氳繃render鏂規(guī)硶銆?

render鏂規(guī)硶鍙互浼犻掍竴涓唬鐮佸潡鏉ユ墽琛屾爣璁扮敓鎴愬櫒浜х敓XML

def list = {
def results = Book.list()
render(contentType:"text/xml") {
books {
for(b in results) {
book(title:b.title)
}
}
}
}

榪欐浠g爜鐨勭粨鏋滃皢浼?xì)鍍彉q欐牱錛?

<books>
<book title="The Stand" />
<book title="The Shining" />
</books>

娉ㄦ剰錛屽綋浣犱嬌鐢ㄦ爣璁扮敓鎴愬櫒鏃訛紝蹇呴』灝忓績閬垮厤鍛藉悕鍐茬獊銆備緥濡傦紝榪欐浠g爜灝嗕駭鐢熶竴涓敊璇細(xì)

def list = {
def books = Book.list()  // naming conflict here
render(contentType:"text/xml") {
books {
for(b in results) {
book(title:b.title)
}
}
}
}

鍘熷洜鏄紝榪欓噷鐨勪竴涓湰鍦板彉閲?code>books浼佸浘浣滀負(fù)鏂規(guī)硶琚皟鐢ㄣ?

浣跨敤render鏂規(guī)硶杈撳嚭JSON

render 鏂規(guī)硶鍙互鍚屾牱琚敤浜庤緭鍑篔SON:

def list = {
def results = Book.list()
render(contentType:"text/json") {
books {
for(b in results) {
book(title:b.title)
}
}
}
}

鍦ㄨ繖縐嶆儏鍐典笅錛岀粨鏋滃氨浼?xì)鏄ぇ鑷寸浉鍚岀殑锛?xì)

[
{title:"The Stand"},
{title:"The Shining"}
]

鍚屾牱鐨勫懡鍚嶅啿紿佸嵄闄╅傜敤浜嶫SON鐢熸垚鍣ㄣ?

鑷姩XML鍒楅泦(Marshalling)

錛堣瘧鑰呮敞錛氬湪姝ら檮涓婂浜庡垪闆?Marshalling)瑙i噴錛氬鍑芥暟鍙傛暟榪涜鎵撳寘澶勭悊寰楄繃紼嬶紝鍥犱負(fù)鎸囬拡絳夋暟鎹紝蹇呴』閫氳繃涓瀹氬緱杞崲錛屾墠鑳借鍙︿竴緇勪歡鎵鐞嗚В銆傚彲浠ヨ鍒楅泦(Marshalling)鏄竴縐嶆暟鎹牸寮忕殑杞崲鏂規(guī)硶銆傦級(jí)

Grails鍚屾牱鏀寔鑷姩鍒楅泦(Marshalling)棰嗗煙綾諱負(fù)XML閫氳繃鐗瑰畾鐨勮漿鎹㈠櫒銆?

棣栧厛錛屽鍏?code>grails.converters 綾誨寘鍒頒綘鐨勬帶鍒跺櫒錛圕ontrollers錛変腑錛?

import grails.converters.*

鐜板湪錛屼綘鍙互浣跨敤涓嬪垪楂樺害鏄撹鐨勮娉曟潵鑷姩杞崲棰嗗煙綾繪垚XML錛?

render Book.list() as XML

杈撳嚭緇撴灉鐪嬩笂鍘諱細(xì)鍍忎笅鍒楄繖鏍鳳細(xì)

<?xml version="1.0" encoding="ISO-8859-1"?>
<list>
<book id="1">
<author>Stephen King</author>
<title>The Stand</title>
</book>
<book id="2">
<author>Stephen King</author>
<title>The Shining</title>
</book>
</list>

涓涓嬌鐢ㄨ漿鎹㈠櫒鐨勬浛浠f柟娉曟槸浣跨敤Grails鐨刢odecs鐗規(guī)с俢odecs鐗規(guī)ф彁渚涗簡encodeAsXML鍜宔ncodeAsJSON鏂規(guī)硶:

def xml = Book.list().encodeAsXML()
render xml

 

鑷姩JSON鍒楅泦(Marshalling)

Grails鍚屾牱鏀寔鑷姩鍒楅泦(Marshalling)涓篔SON閫氳繃鍚屾牱鐨勬満鍒躲傜畝鍗曟浛浠?code>XML 涓?code>JSON

render Book.list() as JSON

杈撳嚭緇撴灉鐪嬩笂鍘諱細(xì)鍍忎笅鍒楄繖鏍鳳細(xì)

[
{"id":1,
"class":"Book",
"author":"Stephen King",
"title":"The Stand"},
{"id":2,
"class":"Book",
"author":"Stephen King",
"releaseDate":new Date(1194127343161),
"title":"The Shining"}
]

鍐嶆浣滀負(fù)涓縐嶆浛浠o紝浣犲彲浠ヤ嬌鐢?code>encodeAsJSON杈懼埌鐩稿悓鐨勬晥鏋?



Eric.Zhou 2008-06-05 16:21 鍙戣〃璇勮
]]>
XMLSchema涓殑key鍜寀niquehttp://m.tkk7.com/rain1102/archive/2008/03/29/189479.htmlEric.ZhouEric.ZhouSat, 29 Mar 2008 08:16:00 GMThttp://m.tkk7.com/rain1102/archive/2008/03/29/189479.htmlhttp://m.tkk7.com/rain1102/comments/189479.htmlhttp://m.tkk7.com/rain1102/archive/2008/03/29/189479.html#Feedback0http://m.tkk7.com/rain1102/comments/commentRss/189479.htmlhttp://m.tkk7.com/rain1102/services/trackbacks/189479.html

鍏充簬XML Schema涓殑key鍜寀nique鐨勬蹇靛緢澶歋chema鏁欑▼閲岄潰璁茶繃錛屽彲鎯滅綉涓婂ぇ閮ㄥ垎鏁欑▼閲岄潰鐨勪緥瀛愭槸閿欒鐨勶紝鑰屼笖騫舵病鏈夌粰鍑哄畬鏁存竻鏅扮殑瑙i噴錛屾垜鏌ユ壘浜哠chema鐨勮鑼冨茍鍐欏嚭浜嗙浉搴斾簡渚嬪瓙錛岀悊娓呬簡榪欎袱涓蹇碉紝甯屾湜瀵瑰ぇ瀹舵湁鎵甯姪銆俋ML Schema瑙勮寖鏉ヨ嚜浜?br /> http://www.w3.org/TR/xmlschema-0/

1.unique鐨勫畾涔夊拰渚嬪瓙
瑙勮寖涓浜巙nique鏄繖鏍峰畾涔夌殑錛歑ML Schema enables us to indicate that any attribute or element value must be unique within a certain scope. To indicate that one particular attribute or element value is unique, we use the unique element first to "select" a set of elements, and then to identify the attribute or element "field" relative to each selected element that has to be unique within the scope of the set of selected elements.
璇戞枃錛歑ML Schema鍏佽鎴戜滑鎸囧嚭浠繪剰鐨勫睘鎬ф垨鑰呭厓绱犲煎湪鏌愪釜鑼冨洿鍐呮槸鍞竴鐨勩備負(fù)浜嗘寚鍑鴻繖涓睘鎬ф垨鑰呭厓绱犲肩殑鍞竴鎬э紝鎴戜滑浣跨敤浜唘nique鍏冪礌錛屽畠棣栧厛“閫夋嫨”涓緇勫厓绱狅紝鐒跺悗鎸囧嚭榪欎釜灞炴ф垨鑰呭厓绱犵殑“鍩?#8221;鍦ㄤ笂涓姝ユ墍閫夋嫨鍑虹殑鍏冪礌闆嗗悎涓槸鍞竴鐨勩?br /> 渚嬪瓙Schema錛歎niqueTest.xsd
<?xml version="1.0" encoding="GB2312"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
 <xs:element name="Person">
  <xs:annotation>
   <xs:documentation>Comment describing your root element</xs:documentation>
  </xs:annotation>
  <xs:complexType>
   <xs:sequence>
    <xs:element name="Name" type="xs:string" maxOccurs="unbounded"/>
    <xs:element name="Id" type="xs:integer" maxOccurs="unbounded">
    </xs:element>
   </xs:sequence>
  </xs:complexType>
  <xs:unique name="IdUnique">
   <xs:selector xpath=".//Id"/>
   <xs:field xpath="."/>
  </xs:unique>
 </xs:element>
</xs:schema>

渚嬪瓙XML:UniqueTest.xml
<?xml version="1.0" encoding="GB2312"?>
<Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="UniqueTest.xsd">
<Name>wxb_nudt</Name>
 <Id>1001</Id>
 <Id>1002</Id>
 <Id>1001</Id> <!--榪欏効灝變細(xì)鎶ラ敊錛屽洜涓哄畠鐨勫煎拰絎竴涓狪d閲嶅浜嗭紝騫朵笉鏄敮涓鐨?->
 <Id>1004</Id>
</Person>

2.key鐨勫畾涔夊拰渚嬪瓙
瑙勮寖涓槸閫氳繃涓涓緝闀跨殑渚嬪瓙鏉ヨ鏄巏ey鍜宬eyref鐨勫畾涔夛紝褰掔撼璧鋒潵鍙互鍋氬涓嬪畾涔夛細(xì)XML Schema鍙互閫氳繃灝嗕竴涓厓绱犳垨鑰呭睘鎬у畾涔変負(fù)涓涓猭ey錛岃繖涓猭ey蹇呴』鏄痷nique鐨勶紝榪欎釜key鍙互鍦╔ML鏂囨。涓殑鍏朵粬閮ㄥ垎閫氳繃keyref榪涜寮曠敤錛宬eyref鐨勫間竴瀹氬彇鑷簬key鐨勬煇涓涓箋俴ey鐨勬蹇靛緢綾諱技浜庢暟鎹簱涓殑澶栭敭銆?br /> key鐨勫叿浣撳畾涔夋柟娉曞緢綾諱技浜巙nique鐨勫畾涔夋柟娉曪紝棣栧厛“閫夋嫨”涓緇勫厓绱狅紝鐒跺悗鎸囧嚭鏌愪釜灞炴ф垨鑰呭厓绱犵殑“鍩?#8221;灝辨槸涓涓猭ey銆?br /> 鑰宬eyref涓巏ey鐨勫畾涔夊畬鍏ㄧ浉浼鹼紝鍞竴鐨勫尯鍒槸鍔犱簡涓涓猺efer灞炴э紝榪欎釜refer灞炴ф寚鍑轟簡key鐨勫悕瀛楋紝鍏蜂綋渚嬪瓙濡備笅錛?br /> 渚嬪瓙schema錛欿eyExam.xsd
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by wxb (nudt) -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
 <xsd:element name="rootElement">
  <xsd:complexType>
   <xsd:sequence>
    <xsd:element name="elementOne" maxOccurs="unbounded">
     <xsd:complexType>
      <xsd:attribute name="elementOneKey" type="xsd:integer"/>
      <xsd:attribute name="elementOneDesc" type="xsd:string"/>
     </xsd:complexType>
    </xsd:element>
    <xsd:element name="elementTwo" maxOccurs="unbounded">
     <xsd:complexType>
      <xsd:attribute name="elementTwoKey" type="xsd:integer"/>
      <xsd:attribute name="elementOneKey" type="xsd:string"/>
      <xsd:attribute name="elementTwoDesc" type="xsd:string"/>
     </xsd:complexType>
    </xsd:element>
   </xsd:sequence>
  </xsd:complexType>
  <xsd:key name="elementOnePK">
   <xsd:selector xpath=".//elementOne"/>
   <xsd:field xpath="@elementOneDesc"/>
  </xsd:key>
  <xsd:keyref name="elementOneFK" refer="elementOnePK">
   <xsd:selector xpath=".//elementTwo"/>
   <xsd:field xpath="@elementTwoDesc"/>
  </xsd:keyref>
  <xsd:unique name="EOneKeyU" xsi:type="xsd:integer">
   <xsd:selector xpath=".//elementOne"/>
   <xsd:field xpath="@elementOneKey"/>
  </xsd:unique>
 </xsd:element>
</xsd:schema>

渚嬪瓙xml錛欿eyExam.xml
<?xml version="1.0" encoding="UTF-8"?>
<rootElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="KeyExam.xsd">
 <elementOne elementOneKey="1" elementOneDesc="a"/>
 <elementOne elementOneKey="2" elementOneDesc="b"/>
 <elementOne elementOneKey="3" elementOneDesc="c"/>
 <elementOne elementOneKey="4" elementOneDesc="d"/>
 <elementTwo elementOneKey="5" elementTwoDesc="e" elementTwoKey="78"/>
 <!--涓婇潰鐨別lementTwoDesc浣滀負(fù)elementOneDesc鐨勪竴涓猭eyref錛屽畠蹇呴』鍙栧間簬涓婇潰鐨?涓猭ey鍊間箣涓錛岃繖閲屽畠鐨勫?e"鍥犱負(fù)涓嶆槸鍙栧間簬"a","b","c","d",鎵浠ヤ細(xì)鎶ラ敊-->
</rootElement>



Eric.Zhou 2008-03-29 16:16 鍙戣〃璇勮
]]>
Schema涓殑涓浜涘厓绱犲煎拰灞炴у肩害鏉?/title><link>http://m.tkk7.com/rain1102/archive/2008/03/29/189435.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Sat, 29 Mar 2008 04:44:00 GMT</pubDate><guid>http://m.tkk7.com/rain1102/archive/2008/03/29/189435.html</guid><wfw:comment>http://m.tkk7.com/rain1102/comments/189435.html</wfw:comment><comments>http://m.tkk7.com/rain1102/archive/2008/03/29/189435.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/rain1102/comments/commentRss/189435.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/rain1102/services/trackbacks/189435.html</trackback:ping><description><![CDATA[<p>  </p> <p style="text-align: left" align="left"><span style="font-size: 12pt; color: red; font-family: 瀹嬩綋">瀵逛竴緇勫肩殑綰︽潫錛堜嬌鐢ㄦ灇涓撅級(jí)</span><span style="font-size: 12pt; font-family: 瀹嬩綋"><br /> </span><span style="font-size: 10pt; font-family: 瀹嬩綋">涓嬭堪妗堜緥緇欏悕涓?car"鐨勫厓绱犲畾涔変簡綰︽潫鏉′歡錛岀鍚堟潯浠剁殑鍊兼湁錛欰udi銆丟olf銆丅MW錛?br /> </span><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:element name="car"> </span></p> <p style="text-align: left" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:simpleType><br />  <xs:restriction base="xs:string"><br />     <xs:enumeration value="Audi"/><br />     <xs:enumeration value="Golf"/><br />     <xs:enumeration value="BMW"/><br />  </xs:restriction><br /> </xs:simpleType> </span></p> <p style="text-align: left" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"></xs:element>   </span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: red; font-family: 瀹嬩綋">瀵逛竴緋誨垪鍊肩殑綰︽潫 </span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 10pt; color: black; font-family: 瀹嬩綋">涓嬭堪妗堜緥緇欏悕涓?letter"鐨勫厓绱犲畾涔変簡綰︽潫鏉′歡銆傚敮涓絎﹀悎鏉′歡鐨勫兼槸浠?a 鍒?z 涔嬮棿鐨勪竴涓皬鍐欏瓧姣嶏細(xì)</span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:element name="letter"></span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:simpleType></span></p> <p style="text-indent: 12pt; text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:restriction base="xs:string"></span></p> <p style="text-indent: 24pt; text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:pattern value="[a-z]"/></span></p> <p style="text-indent: 12pt; text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"></xs:restriction></span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"></xs:simpleType></span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"></xs:element></span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: black; font-family: 瀹嬩綋">涓嬭堪妗堜緥緇欏悕涓?gender"鐨勫厓绱犲畾涔変簡涓涓害鏉熸潯浠躲傚敮涓絎﹀悎鐨勫兼槸male 錛堢敺鎬э級(jí)鎴杅emale錛堝コ鎬э級(jí)錛?/span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:element name="gender"></span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:simpleType></span></p> <p style="text-indent: 12pt; text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:restriction base="xs:string"></span></p> <p style="text-indent: 24pt; text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:pattern value="male|female"/></span></p> <p style="text-indent: 12pt; text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"></xs:restriction></span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"></xs:simpleType></span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"></xs:element></span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: red; font-family: 瀹嬩綋">瀵圭┖鐧界鐨勭害鏉?/span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: black; font-family: 瀹嬩綋">涓嬭堪妗堜緥緇欏悕涓?address"鐨勫厓绱犲畾涔変簡涓涓害鏉熸潯浠躲傜┖鐧界璁劇疆涓?preserve"錛堜繚鐣欙級(jí)錛岃繖鎰忓懗鐫XML澶勭悊鍣ㄤ笉浼?xì)鍒犻櫎鋼Q浣曠┖鐧界錛?/span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:element name="address"></span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:simpleType></span></p> <p style="text-indent: 12pt; text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:restriction base="xs:string"></span></p> <p style="text-indent: 24pt; text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:whiteSpace value="</span><span style="font-size: 12pt; color: #333399; font-family: 瀹嬩綋">preserve</span><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋">"/></span></p> <p style="text-indent: 12pt; text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"></xs:restriction></span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"></xs:simpleType></span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"></xs:element></span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 10pt; color: black; font-family: 瀹嬩綋">涓嬭堪妗堜緥緇欏悕涓?address"鐨勫厓绱犲畾涔変簡涓涓害鏉熸潯浠躲傜┖鐧界璁劇疆涓? replace "錛堟浛浠o級(jí)錛岃繖鎰忓懗鐫XML澶勭悊鍣ㄤ細(xì)鐢ㄧ┖鏍兼浛浠f墍鏈夌殑絀虹櫧瀛楃錛堝叾涓寘鎷細(xì)鎹㈣絎︺佸埗琛ㄧ銆佺┖鏍肩銆佸洖杞︾錛夛細(xì)</span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:element name="address"></span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:simpleType></span></p> <p style="text-indent: 12pt; text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:restriction base="xs:string"></span></p> <p style="text-indent: 24pt; text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:whiteSpace value="</span><span style="font-size: 12pt; color: #333399; font-family: 瀹嬩綋">replace</span><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋">"/></span></p> <p style="text-indent: 12pt; text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"></xs:restriction></span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"></xs:simpleType></span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"></xs:element></span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 10pt; color: black; font-family: 瀹嬩綋">涓嬭堪妗堜緥緇欏悕涓?address"鐨勫厓绱犲畾涔変簡涓涓害鏉熸潯浠躲傜┖鐧界璁劇疆涓?collapse"錛堟竻闄わ級(jí)錛岃繖鎰忓懗鐫XML澶勭悊鍣ㄤ細(xì)娓呴櫎鎵鏈夌殑絀虹櫧瀛楃錛堟崲琛岀銆佸埗琛ㄧ銆佺┖鏍肩浠ュ強(qiáng)鍥炶濺絎﹂兘琚┖鏍肩鏇夸唬銆傚ご閮ㄣ佸熬閮ㄧ殑絀烘牸浼?xì)琚竻闄ゅQ屽涓┖鏍間篃浼?xì)鑷姩鍑彏畱湄?fù)涓涓級(jí)錛?/span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:element name="address"></span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:simpleType></span></p> <p style="text-indent: 12pt; text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:restriction base="xs:string"></span></p> <p style="text-indent: 24pt; text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"><xs:whiteSpace value="</span><span style="font-size: 12pt; color: #333399; font-family: 瀹嬩綋">collapse</span><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋">"/></span></p> <p style="text-indent: 12pt; text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"></xs:restriction></span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"></xs:simpleType></span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 12pt; color: green; font-family: 瀹嬩綋"></xs:element></span></p> <p style="text-align: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-family: 瀹嬩綋">瀵規(guī)暟鎹被鍨嬬殑綰︽潫</span></p> <p> <table style="width: 563px; height: 812px" cellspacing="0" cellpadding="0" width="563" border="1"> <tbody> <tr> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; width: 15%; padding-top: 0.75pt" valign="top" width="15%"> <p style="text-align: left" align="left"><strong><span style="font-size: 12pt; font-family: 瀹嬩綋">Constraint<br /> </span></strong><strong><span style="font-size: 12pt; font-family: 瀹嬩綋">綰︽潫</span></strong></p> </td> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; width: 85%; padding-top: 0.75pt" valign="top" width="85%"> <p style="text-align: left" align="left"><strong><span style="font-size: 12pt; font-family: 瀹嬩綋">Description<br /> </span></strong><strong><span style="font-size: 12pt; font-family: 瀹嬩綋">璇存槑</span></strong></p> </td> </tr> <tr> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">enumeration</span></p> </td> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">Defines a list of acceptable values<br /> </span><span style="font-size: 12pt; font-family: 瀹嬩綋">瀹氫箟浜嗕竴緋誨垪鐨勬湁鏁堝?/span></p> </td> </tr> <tr> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">fractionDigits</span></p> </td> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">Specifies the maximum number of decimal places allowed. Must be equal to or greater than zero<br /> </span><span style="font-size: 12pt; font-family: 瀹嬩綋">鎸囧畾浜嗗厑璁稿嚭鐜扮殑灝忔暟浣嶆暟鐨勬渶澶т綅鏁般傚煎繀欏誨ぇ浜庣瓑浜?</span></p> </td> </tr> <tr> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">length</span></p> </td> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">Specifies the exact number of characters or list items allowed. Must be equal to or greater than zero<br /> </span><span style="font-size: 12pt; font-family: 瀹嬩綋">鎸囧畾浜嗗厑璁稿嚭鐜扮殑瀛楃鎴栧垪琛ㄩ」鐨勪釜鏁般傚煎繀欏誨ぇ浜庣瓑浜?</span></p> </td> </tr> <tr> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">maxExclusive</span></p> </td> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">Specifies the upper bounds for numeric values (the value must be less than this value)<br /> </span><span style="font-size: 12pt; font-family: 瀹嬩綋">鎸囧畾浜嗘暟鍊間笂闄愶紙鏁板煎繀欏誨皬浜庤鍊鹼級(jí)</span></p> </td> </tr> <tr> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">maxInclusive</span></p> </td> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">Specifies the upper bounds for numeric values (the value must be less than or equal to this value)<br /> </span><span style="font-size: 12pt; font-family: 瀹嬩綋">鎸囧畾浜嗘暟鍊間笂闄愶紙鏁板煎繀欏誨皬浜庣瓑浜庤鍊鹼級(jí)</span></p> </td> </tr> <tr> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">maxLength</span></p> </td> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">Specifies the maximum number of characters or list items allowed. Must be equal to or greater than zero<br /> </span><span style="font-size: 12pt; font-family: 瀹嬩綋">鎸囧畾浜嗗厑璁稿嚭鐜扮殑瀛楃鎴栧垪琛ㄩ」鐨勬渶澶т釜鏁般傚煎繀欏誨ぇ浜庣瓑浜?</span></p> </td> </tr> <tr> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">minExclusive</span></p> </td> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">Specifies the lower bounds for numeric values (the value must be greater than this value)<br /> </span><span style="font-size: 12pt; font-family: 瀹嬩綋">鎸囧畾浜嗘暟鍊肩殑涓嬮檺 錛堟暟鍊煎繀欏誨ぇ浜庤鍊鹼級(jí)</span></p> </td> </tr> <tr> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">minInclusive</span></p> </td> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">Specifies the lower bounds for numeric values (the value must be greater than or equal to this value)<br /> </span><span style="font-size: 12pt; font-family: 瀹嬩綋">鎸囧畾浜嗘暟鍊肩殑涓嬮檺錛堟暟鍊煎繀欏誨ぇ浜庣瓑浜庤鍊鹼級(jí)</span></p> </td> </tr> <tr> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">minLength</span></p> </td> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">Specifies the minimum number of characters or list items allowed. Must be equal to or greater than zero<br /> </span><span style="font-size: 12pt; font-family: 瀹嬩綋">鎸囧畾浜嗗厑璁稿嚭鐜扮殑瀛楃鎴栧垪琛ㄧ殑鏈灝忎釜鏁般傚煎繀欏誨ぇ浜庣瓑浜?</span></p> </td> </tr> <tr> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">pattern</span></p> </td> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">Defines the exact sequence of characters that are acceptable <br /> </span><span style="font-size: 12pt; font-family: 瀹嬩綋">瀹氫箟浜嗙鍚堣姹傜殑瀛楃鐨勭簿紜帓鍒楅『搴?/span></p> </td> </tr> <tr> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">totalDigits</span></p> </td> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">Specifies the exact number of digits allowed. Must be greater than zero<br /> </span><span style="font-size: 12pt; font-family: 瀹嬩綋">鎸囧畾浜嗗厑璁稿嚭鐜扮殑瀛楃鐨勭簿紜釜鏁般傚煎繀欏誨ぇ浜?</span></p> </td> </tr> <tr> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">whiteSpace</span></p> </td> <td style="padding-right: 0.75pt; padding-left: 0.75pt; padding-bottom: 0.75pt; padding-top: 0.75pt" valign="top"> <p style="text-align: left" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋">Specifies how white space (line feeds, tabs, spaces, and carriage returns) is handled<br /> </span><span style="font-size: 12pt; font-family: 瀹嬩綋">鎸囧畾浜嗙┖鐧界鐨勫鐞嗘柟寮忥紙鍏朵腑鍖呮嫭錛氭崲琛岀銆佸埗琛ㄧ銆佺┖鏍肩鍜屽洖杞︾錛?/span></p> </td> </tr> </tbody> </table> </p><img src ="http://m.tkk7.com/rain1102/aggbug/189435.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/rain1102/" target="_blank">Eric.Zhou</a> 2008-03-29 12:44 <a href="http://m.tkk7.com/rain1102/archive/2008/03/29/189435.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鏍規(guī)嵁Schema浣跨敤javax.xml.validation.Validator楠岃瘉XMLhttp://m.tkk7.com/rain1102/archive/2008/03/27/189137.htmlEric.ZhouEric.ZhouThu, 27 Mar 2008 13:46:00 GMThttp://m.tkk7.com/rain1102/archive/2008/03/27/189137.htmlhttp://m.tkk7.com/rain1102/comments/189137.htmlhttp://m.tkk7.com/rain1102/archive/2008/03/27/189137.html#Feedback1http://m.tkk7.com/rain1102/comments/commentRss/189137.htmlhttp://m.tkk7.com/rain1102/services/trackbacks/189137.htmlSchemaValidation .java

package com.founder.xml;

import Java.io.IOException;
import Java.io.InputStream;

import javax.xml.XMLConstants;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;

import org.xml.sax.SAXException;

public class SchemaValidation {

 /**
  * @param args
  * @throws IOException
  * @throws SAXException
  * @throws ParserConfigurationException
  */
 public static void main(String[] args) throws ParserConfigurationException,
   SAXException, IOException {
  SchemaValidation sv = new SchemaValidation();
  sv.validate();
 }

 public void validate() {
  try {
   String strLang = XMLConstants.W3C_XML_SCHEMA_NS_URI;
   SchemaFactory factory = SchemaFactory.newInstance(strLang);

   InputStream isSchema = getClass().getResourceAsStream("/founder.xsd");
   StreamSource ss = new StreamSource(isSchema);
   Schema schema = factory.newSchema(ss);

   Validator validator = schema.newValidator();
   
   InputStream isXML = getClass().getResourceAsStream("/founder.xml");
   
   StreamSource source = new StreamSource(isXML);
   validator.validate(source);
   System.out.println("Result : Valid!");

  } catch (Exception e) {
   e.printStackTrace();
   System.out.println("Result : Invalid!");
  }

 }

}


founder.xsd

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
 xmlns="http://www.founder.com" elementFormDefault="qualified">
 <xs:element name="note">
  <xs:complexType>
   <xs:sequence>
    <xs:element name="to" type="xs:string" />
    <xs:element name="from" type="xs:string" />
    <xs:element name="heading" type="xs:string" />
    <xs:element name="body" type="xs:string" />
   </xs:sequence>
  </xs:complexType>
 </xs:element>
</xs:schema>


founder.xml

<?xml version="1.0"?>
<note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.founder.com founder.xsd">
 <to>Tove</to>
 <from>Jani</from>
 <heading>Reminder</heading>
 <body>Don't forget me this weekend!</body>
</note>





Eric.Zhou 2008-03-27 21:46 鍙戣〃璇勮
]]>
RSShttp://m.tkk7.com/rain1102/archive/2008/01/18/176345.htmlEric.ZhouEric.ZhouFri, 18 Jan 2008 14:14:00 GMThttp://m.tkk7.com/rain1102/archive/2008/01/18/176345.htmlhttp://m.tkk7.com/rain1102/comments/176345.htmlhttp://m.tkk7.com/rain1102/archive/2008/01/18/176345.html#Feedback0http://m.tkk7.com/rain1102/comments/commentRss/176345.htmlhttp://m.tkk7.com/rain1102/services/trackbacks/176345.html闃呰鍏ㄦ枃

Eric.Zhou 2008-01-18 22:14 鍙戣〃璇勮
]]>
XML/XSL-FOhttp://m.tkk7.com/rain1102/archive/2008/01/18/176203.htmlEric.ZhouEric.ZhouFri, 18 Jan 2008 06:36:00 GMThttp://m.tkk7.com/rain1102/archive/2008/01/18/176203.htmlhttp://m.tkk7.com/rain1102/comments/176203.htmlhttp://m.tkk7.com/rain1102/archive/2008/01/18/176203.html#Feedback0http://m.tkk7.com/rain1102/comments/commentRss/176203.htmlhttp://m.tkk7.com/rain1102/services/trackbacks/176203.html闃呰鍏ㄦ枃

Eric.Zhou 2008-01-18 14:36 鍙戣〃璇勮
]]>
Schema (XSD) 鏁欑▼http://m.tkk7.com/rain1102/archive/2008/01/17/175861.htmlEric.ZhouEric.ZhouThu, 17 Jan 2008 02:53:00 GMThttp://m.tkk7.com/rain1102/archive/2008/01/17/175861.htmlhttp://m.tkk7.com/rain1102/comments/175861.htmlhttp://m.tkk7.com/rain1102/archive/2008/01/17/175861.html#Feedback2http://m.tkk7.com/rain1102/comments/commentRss/175861.htmlhttp://m.tkk7.com/rain1102/services/trackbacks/175861.htmlSchema (XSD) 鏁欑▼


Eric.Zhou 2008-01-17 10:53 鍙戣〃璇勮
]]>
XMLDOM瀵硅薄鏂規(guī)硶鎵嬪唽http://m.tkk7.com/rain1102/archive/2006/10/17/75578.htmlEric.ZhouEric.ZhouTue, 17 Oct 2006 04:48:00 GMThttp://m.tkk7.com/rain1102/archive/2006/10/17/75578.htmlhttp://m.tkk7.com/rain1102/comments/75578.htmlhttp://m.tkk7.com/rain1102/archive/2006/10/17/75578.html#Feedback0http://m.tkk7.com/rain1102/comments/commentRss/75578.htmlhttp://m.tkk7.com/rain1102/services/trackbacks/75578.html闃呰鍏ㄦ枃

Eric.Zhou 2006-10-17 12:48 鍙戣〃璇勮
]]>
Java 璇█鐨?XPath APIhttp://m.tkk7.com/rain1102/archive/2006/09/18/70267.htmlEric.ZhouEric.ZhouMon, 18 Sep 2006 05:34:00 GMThttp://m.tkk7.com/rain1102/archive/2006/09/18/70267.htmlhttp://m.tkk7.com/rain1102/comments/70267.htmlhttp://m.tkk7.com/rain1102/archive/2006/09/18/70267.html#Feedback0http://m.tkk7.com/rain1102/comments/commentRss/70267.htmlhttp://m.tkk7.com/rain1102/services/trackbacks/70267.htmlXPath 琛ㄨ揪寮忔瘮綣佺悙鐨勬枃妗e璞℃ā鍨嬶紙DOM錛夊鑸唬鐮佽瀹規(guī)槗緙栧啓寰楀銆傚鏋滈渶瑕佷粠 XML 鏂囨。涓彁鍙栦俊鎭紝鏈蹇嵎銆佹渶綆鍗曠殑鍔炴硶灝辨槸鍦?Java™ 紼嬪簭涓祵鍏?XPath 琛ㄨ揪寮忋侸ava 5 鎺ㄥ嚭浜?javax.xml.xpath 鍖咃紝榪欐槸涓涓敤浜?XPath 鏂囨。鏌ヨ鐨勭嫭绔嬩簬 XML 瀵硅薄妯″瀷鐨勫簱銆?/blockquote>

濡傛灉瑕佸憡璇夊埆浜轟拱涓鍔犱粦鐗涘ザ錛屾?zhèn)ㄤ細(xì)鎬庝箞璇達(dá)紵“璇峰幓涔頒竴鍔犱粦鐗涘ザ鍥炴潵” 榪樻槸 “浠庡墠闂ㄥ嚭鍘伙紝鍚戝乏杞紝璧頒笁涓鍖哄悜鍙寵漿錛屽啀璧板崐涓鍖哄悜鍙寵漿榪涘叆鍟嗗簵銆傝蛋鍚戝洓鍙烽氶亾錛屾部閫氶亾璧頒簲綾沖悜宸︼紝鎷夸竴鐡朵竴鍔犱粦瑁呯殑鐗涘ザ鐒跺悗鍒版敹閾跺彴浠樻銆傚啀娌垮師璺洖瀹躲?#8221; 綆鐩村お鍙瑧浜嗐傚彧瑕佸湪 “璇峰幓涔頒竴鍔犱粦鐗涘ザ鍥炴潵” 鐨勫熀紜涓婄◢鍔犳寚紺猴紝澶氭暟鎴愪漢閮借兘鑷繁涔板洖鐗涘ザ鏉ャ?

鏌ヨ璇█鍜岃綆楁満鎼滅儲(chǔ)涓庢綾諱技銆傜洿鎺ヨ “鎵句竴涓?Cryptonomicon 鐨勫壇鏈?#8221; 瑕佹瘮緙栧啓鎼滅儲(chǔ)鏌愪釜鏁版嵁搴撶殑璇︾粏閫昏緫瀹規(guī)槗寰楀銆傜敱浜庢悳绱㈡搷浣滅殑閫昏緫闈炲父鐩鎬技錛屽彲浠ュ彂鏄庝竴縐嶉氱敤璇█璁╂?zhèn)ㄤ娇鐢?“鎵懼埌 Neal Stephenson 鐨勬墍鏈夎憲浣?#8221; 榪欐牱鐨勫懡浠わ紝鐒跺悗緙栧啓瀵圭壒瀹氭暟鎹瓨鍌ㄦ墽琛屾綾繪煡璇㈢殑寮曟搸銆?

XPath

鍦ㄤ紬澶氭煡璇㈣璦涔嬩腑錛岀粨鏋勫寲鏌ヨ璇█錛圫QL錛夋槸涓縐嶉拡瀵規(guī)煡璇㈢壒瀹氱被鍨嬬殑鍏崇郴搴撹岃璁″拰浼樺寲鐨勮璦銆傚叾浠栦笉閭d箞甯歌鐨勬煡璇㈣璦榪樻湁瀵硅薄鏌ヨ璇█錛圤QL錛夊拰 XQuery銆備絾鏈枃鐨勪富棰樻槸 XPath錛屼竴縐嶄負(fù)鏌ヨ XML 鏂囨。鑰岃璁$殑鏌ヨ璇█銆傛瘮濡傦紝涓嬮潰榪欎釜綆鍗曠殑 XPath 鏌ヨ鍙互鍦ㄦ枃妗d腑鎵懼埌浣滆呬負(fù) Neal Stephenson 鐨勬墍鏈夊浘涔︾殑鏍囬錛?/p>
//book[author="Neal Stephenson"]/title

浣滀負(fù)瀵圭収錛屾煡璇㈠悓鏍蜂俊鎭殑綰?DOM 鎼滅儲(chǔ)浠g爜濡?娓呭崟 1 鎵紺猴細(xì)


娓呭崟 1. 鎵懼埌 Neal Stephenson 鎵鏈夎憲浣?title 鍏冪礌鐨?DOM 浠g爜
        ArrayList result = new ArrayList();
        NodeList books = doc.getElementsByTagName("book");
        for (int i = 0; i < books.getLength(); i++) {
            Element book = (Element) books.item(i);
            NodeList authors = book.getElementsByTagName("author");
            boolean stephenson = false;
            for (int j = 0; j < authors.getLength(); j++) {
                Element author = (Element) authors.item(j);
                NodeList children = author.getChildNodes();
                StringBuffer sb = new StringBuffer();
                for (int k = 0; k < children.getLength(); k++) {
                    Node child = children.item(k);
                    // really should to do this recursively
                    if (child.getNodeType() == Node.TEXT_NODE) {
                        sb.append(child.getNodeValue());
                    }
                }
                if (sb.toString().equals("Neal Stephenson")) {
                    stephenson = true;
                    break;
                }

            }

            if (stephenson) {
                NodeList titles = book.getElementsByTagName("title");
                for (int j = 0; j < titles.getLength(); j++) {
                    result.add(titles.item(j));
                }
            }

        }

涓嶈鎮(zhèn)ㄦ槸鍚︾浉淇★紝娓呭崟 1 涓殑 DOM 鏄劇劧涓嶅綆鍗曠殑 XPath 琛ㄨ揪寮忛氱敤鎴栬呭仴澹傛?zhèn)ㄦ効鎰従~栧啓銆佽皟璇曞拰緇存姢鍝竴涓紵鎴戞兂絳旀寰堟槑鏄俱?

浣嗘槸铏界劧鏈夊緢寮虹殑琛ㄨ揪鑳藉姏錛孹Path 騫朵笉鏄?Java 璇█錛屼簨瀹炰笂 XPath 涓嶆槸涓縐嶅畬鏁寸殑緙栫▼璇█銆傛湁寰堝涓滆タ鐢?XPath 琛ㄨ揪涓嶅嚭鏉ワ紝鐢氳嚦鏈変簺鏌ヨ涔熸棤娉曡〃杈俱傛瘮鏂硅錛孹Path 涓嶈兘鏌ユ壘鍥介檯鏍囧噯鍥句功緙栫爜錛圛SBN錛夋楠岀爜涓嶅尮閰嶇殑鎵鏈夊浘涔︼紝鎴栬呮壘鍑哄澶栧笎鎴鋒暟鎹簱鏄劇ず嬈犲笎鐨勬墍鏈変綔鑰呫傚垢榪愮殑鏄紝鍙互鎶?XPath 緇撳悎鍒?Java 紼嬪簭涓紝榪欐牱灝辮兘鍙戞尌涓よ呯殑浼樺娍浜嗭細(xì)Java 鍋?Java 鎵鎿呴暱鐨勶紝XPath 鍋?XPath 鎵鎿呴暱鐨勩?

鐩村埌鏈榪戯紝Java 紼嬪簭鎵ц XPath 鏌ヨ鎵闇瑕佺殑搴旂敤紼嬪簭緙栫▼鎺ュ彛錛圓PI錛夎繕鍥犲艦褰㈣壊鑹茬殑 XPath 寮曟搸鑰屽悇涓嶇浉鍚屻俋alan 鏈変竴縐?API錛孲axon 浣跨敤鍙︿竴縐嶏紝鍏朵粬寮曟搸鍒欎嬌鐢ㄥ叾浠栫殑 API銆傝繖鎰忓懗鐫浠g爜寰寰鎶婃?zhèn)ㄩ檺鍒跺堫C竴縐嶄駭鍝佷笂銆傜悊鎯蟲儏鍐典笅錛屾渶濂借兘澶熻瘯楠屽叿鏈変笉鍚屾ц兘鐗圭偣鐨勫悇縐嶅紩鎿庯紝鑰屼笉浼?xì)甯︽潵涓嶉傚綋鐨勯夯鐑?chǔ)鎴栬呴噸鏂扮紪鍐欎唬鐮併?

浜庢槸錛孞ava 5 鎺ㄥ嚭浜?javax.xml.xpath 鍖咃紝鎻愪緵涓涓紩鎿庡拰瀵硅薄妯″瀷鐙珛鐨?XPath 搴撱傝繖涓寘涔熷彲鐢ㄤ簬 Java 1.3 鍙?qiáng)浠ュ悗鐨勭増鏈Q屼絾闇瑕佸崟鐙畨瑁?Java API for XML Processing (JAXP) 1.3銆俋alan 2.7 鍜?Saxon 8 浠ュ強(qiáng)鍏朵粬浜у搧鍖呭惈浜嗚繖涓簱鐨勫疄鐜般?





鍥為〉棣?/font>


涓涓畝鍗曠殑渚嬪瓙

鎴戝皢涓句緥璇存槑濡備綍浣跨敤瀹冦傜劧鍚庡啀璁ㄨ涓浜涚粏鑺傞棶棰樸傚亣璁捐鏌ヨ涓涓浘涔﹀垪琛紝瀵繪壘 Neal Stephenson 鐨勮憲浣溿傚叿浣撴潵璇達(dá)紝榪欎釜鍥句功鍒楄〃鐨勫艦寮忓 娓呭崟 2 鎵紺猴細(xì)


娓呭崟 2. 鍖呭惈鍥句功淇℃伅鐨?XML 鏂囨。
<inventory>
    <book year="2000">
        <title>Snow Crash</title>
        <author>Neal Stephenson</author>
        <publisher>Spectra</publisher>
        <isbn>0553380958</isbn>
        <price>14.95</price>
    </book>
 
    <book year="2005">
        <title>Burning Tower</title>
        <author>Larry Niven</author>
        <author>Jerry Pournelle</author>
        <publisher>Pocket</publisher>
        <isbn>0743416910</isbn>
        <price>5.99</price>
    <book>
 
    <book year="1995">
        <title>Zodiac</title>
        <author>Neal Stephenson<author>
        <publisher>Spectra</publisher>
        <isbn>0553573862</isbn>
        <price>7.50</price>
    <book>

    <!-- more books... -->
 
</inventory>

鎶借薄宸ュ巶

XPathFactory 鏄竴涓娊璞″伐鍘傘傛娊璞″伐鍘傝璁℃ā寮忎嬌寰楄繖涓縐?API 鑳藉鏀寔涓嶅悓鐨勫璞℃ā鍨嬶紝濡?DOM銆丣DOM 鍜?XOM銆備負(fù)浜嗛夋嫨涓嶅悓鐨勬ā鍨嬶紝闇瑕佸悜 XPathFactory.newInstance() 鏂規(guī)硶浼犻掓爣璇嗗璞℃ā鍨嬬殑緇熶竴璧勬簮鏍囪瘑絎︼紙URI錛夈傛瘮濡?http://xom.nu/ 鍙互閫夋嫨 XOM銆備絾瀹為檯涓婏紝鍒扮洰鍓嶄負(fù)姝?DOM 鏄 API 鏀寔鐨勬儫涓瀵硅薄妯″瀷銆?

鏌ユ壘鎵鏈夊浘涔︾殑 XPath 鏌ヨ闈炲父綆鍗曪細(xì)//book[author="Neal Stephenson"]銆備負(fù)浜嗘壘鍑鴻繖浜涘浘涔︾殑鏍囬錛屽彧瑕佸鍔犱竴姝ワ紝琛ㄨ揪寮忓氨鍙樻垚浜?//book[author="Neal Stephenson"]/title銆傛渶鍚庯紝鐪熸闇瑕佺殑鏄?title 鍏冪礌鐨勬枃鏈妭鐐瑰瀛愩傝繖灝辮姹傚啀澧炲姞涓姝ワ紝瀹屾暣鐨勮〃杈懼紡灝辨槸 //book[author="Neal Stephenson"]/title/text()銆?

鐜板湪鎴戞彁渚涗竴涓畝鍗曠殑紼嬪簭錛屽畠浠?Java 璇█涓墽琛岃繖涓煡璇紝鐒跺悗鎶婃壘鍒扮殑鎵鏈夊浘涔︾殑鏍囬鎵撳嵃鍑烘潵銆傞鍏堬紝闇瑕佸皢鏂囨。鍔犺澆鍒頒竴涓?DOM Document 瀵硅薄涓備負(fù)浜嗙畝鍖栬搗瑙侊紝鍋囪璇ユ枃妗e湪褰撳墠宸ヤ綔鐩綍鐨?books.xml 鏂囦歡涓備笅闈㈢殑綆鍗曚唬鐮佺墖孌佃В鏋愭枃妗e茍寤虹珛瀵瑰簲鐨?Document 瀵硅薄錛?


娓呭崟 3. 鐢?JAXP 瑙f瀽鏂囨。
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        factory.setNamespaceAware(true); // never forget this!
        DocumentBuilder builder = factory.newDocumentBuilder();
        Document doc = builder.parse("books.xml");

鍒扮洰鍓嶄負(fù)姝紝榪欎粎浠呮槸鏍囧噯鐨?JAXP 鍜?DOM錛屾病鏈変粈涔堟柊椴滅殑銆?

鎺ヤ笅鏉ュ垱寤?XPathFactory錛?/p>
XPathFactory factory = XPathFactory.newInstance();

鐒跺悗浣跨敤榪欎釜宸ュ巶鍒涘緩 XPath 瀵硅薄錛?

XPath xpath = factory.newXPath();

XPath 瀵硅薄緙栬瘧 XPath 琛ㄨ揪寮忥細(xì)

PathExpression expr = xpath.compile("http://book[author='Neal Stephenson']/title/text()");

鐩存帴姹傚?/b>

濡傛灉 XPath 琛ㄨ揪寮忓彧浣跨敤涓嬈★紝鍙互璺寵繃緙栬瘧姝ラ鐩存帴瀵?XPath 瀵硅薄璋冪敤 evaluate() 鏂規(guī)硶銆備絾鏄紝濡傛灉鍚屼竴涓〃杈懼紡瑕侀噸澶嶄嬌鐢ㄥ嬈★紝緙栬瘧鍙兘鏇村揩涓浜涖?

鏈鍚庯紝璁$畻 XPath 琛ㄨ揪寮忓緱鍒扮粨鏋溿傝〃杈懼紡鏄拡瀵圭壒瀹氱殑涓婁笅鏂囪妭鐐硅綆楃殑錛屽湪榪欎釜渚嬪瓙涓槸鏁翠釜鏂囨。銆傝繕蹇呴』鎸囧畾榪斿洖綾誨瀷銆傝繖閲岃姹傝繑鍥炰竴涓妭鐐歸泦錛?

Object result = expr.evaluate(doc, XPathConstants.NODESET);

鍙互灝嗙粨鏋滃己鍒惰漿鍖栨垚 DOM NodeList錛岀劧鍚庨亶鍘嗗垪琛ㄥ緱鍒版墍鏈夌殑鏍囬錛?

        NodeList nodes = (NodeList) result;
        for (int i = 0; i < nodes.getLength(); i++) {
            System.out.println(nodes.item(i).getNodeValue()); 
        }

娓呭崟 4 鎶婁笂榪扮墖孌電粍鍚堝埌浜嗕竴涓▼搴忎腑銆傝繕瑕佹敞鎰忥紝榪欎簺鏂規(guī)硶鍙兘鎶涘嚭涓浜涙鏌ュ紓甯革紝榪欎簺寮傚父蹇呴』鍦?throws 瀛愬彞涓0鏄庯紝浣嗘槸鎴戝湪涓婇潰鎶婂畠浠帺鐩栬搗鏉ヤ簡錛?


娓呭崟 4. 鐢ㄥ浐瀹氱殑 XPath 琛ㄨ揪寮忔煡璇?XML 鏂囨。鐨勫畬鏁寸▼搴?/b>
import Java.io.IOException;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
import javax.xml.parsers.*;
import javax.xml.xpath.*;

public class XPathExample {

  public static void main(String[] args) 
   throws ParserConfigurationException, SAXException, 
          IOException, XPathExpressionException {

    DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
    domFactory.setNamespaceAware(true); // never forget this!
    DocumentBuilder builder = domFactory.newDocumentBuilder();
    Document doc = builder.parse("books.xml");

    XPathFactory factory = XPathFactory.newInstance();
    XPath xpath = factory.newXPath();
    XPathExpression expr 
     = xpath.compile("http://book[author='Neal Stephenson']/title/text()");

    Object result = expr.evaluate(doc, XPathConstants.NODESET);
    NodeList nodes = (NodeList) result;
    for (int i = 0; i < nodes.getLength(); i++) {
        System.out.println(nodes.item(i).getNodeValue()); 
    }

  }

}

XPath 鏁版嵁妯″瀷

姣忓綋娣峰悎浣跨敤璇稿 XPath 鍜?Java 榪欐牱涓ょ涓嶅悓鐨勮璦鏃訛紝蹇呭畾浼?xì)鏈夋煇浜洖畣涓よ呯矘鍚堝湪涓璧風(fēng)殑鏄庢樉鎺ョ紳銆傚茍闈炰竴鍒囬兘寰堝悎鎷嶃俋Path 鍜?Java 璇█娌℃湁鍚屾牱鐨勭被鍨嬬郴緇熴俋Path 1.0 鍙湁鍥涚鍩烘湰鏁版嵁綾誨瀷錛?/p>

  • node-set
  • number
  • boolean
  • string

褰撶劧錛孞ava 璇█鏈夋洿澶氱殑鏁版嵁綾誨瀷錛屽寘鎷敤鎴峰畾涔夌殑瀵硅薄綾誨瀷銆?/p>

澶氭暟 XPath 琛ㄨ揪寮忥紝鐗瑰埆鏄綅緗礬寰勶紝閮借繑鍥炶妭鐐歸泦銆備絾鏄繕鏈夊叾浠栧彲鑳姐傛瘮濡傦紝XPath 琛ㄨ揪寮?count(//book) 榪斿洖鏂囨。涓殑鍥句功鏁伴噺銆俋Path 琛ㄨ揪寮?count(//book[@author="Neal Stephenson"]) > 10 榪斿洖涓涓竷?yōu)當(dāng)鍊鹼細(xì)濡傛灉鏂囨。涓?Neal Stephenson 鐨勮憲浣滆秴榪?10 鏈垯榪斿洖 true錛屽惁鍒欒繑鍥?false銆?

evaluate() 鏂規(guī)硶琚0鏄庝負(fù)榪斿洖 Object銆傚疄闄呰繑鍥炰粈涔堜緷璧栦簬 XPath 琛ㄨ揪寮忕殑緇撴灉浠ュ強(qiáng)瑕佹眰鐨勭被鍨嬨備竴鑸潵璇達(dá)紝XPath 鐨?/p>

  • number 鏄犲皠涓?Java.lang.Double
  • string 鏄犲皠涓?Java.lang.String
  • boolean 鏄犲皠涓?Java.lang.Boolean
  • node-set 鏄犲皠涓?org.w3c.dom.NodeList
XPath 2

鍓嶉潰涓鐩村亣璁炬?zhèn)ㄤ娇鐢ㄧ殑鏄?XPath 1.0銆俋Path 2 澶уぇ鎵╁睍鍜屼慨鏀逛簡綾誨瀷緋葷粺銆侸ava XPath API 鏀寔 XPath 2 鎵闇鐨勪富瑕佷慨鏀規(guī)槸涓鴻繑鍥?XPath 2 鏂版暟鎹被鍨嬪鍔犲父閲忋?

鍦?Java 涓綆?XPath 琛ㄨ揪寮忔椂錛岀浜屼釜鍙傛暟鎸囧畾闇瑕佺殑榪斿洖綾誨瀷銆傛湁浜旂鍙兘錛岄兘鍦?javax.xml.xpath.XPathConstants 綾諱腑鍛藉悕浜嗗父閲忥細(xì)

  • XPathConstants.NODESET
  • XPathConstants.BOOLEAN
  • XPathConstants.NUMBER
  • XPathConstants.STRING
  • XPathConstants.NODE

鏈鍚庝竴涓?XPathConstants.NODE 瀹為檯涓婃病鏈夊尮閰嶇殑 XPath 綾誨瀷銆傚彧鏈夌煡閬?XPath 琛ㄨ揪寮忓彧榪斿洖涓涓妭鐐規(guī)垨鑰呭彧闇瑕佷竴涓妭鐐規(guī)椂鎵嶄嬌鐢ㄥ畠銆傚鏋?XPath 琛ㄨ揪寮忚繑鍥炰簡澶氫釜鑺傜偣騫朵笖鎸囧畾浜?XPathConstants.NODE錛屽垯 evaluate() 鎸夌収鏂囨。欏哄簭榪斿洖絎竴涓妭鐐廣傚鏋?XPath 琛ㄨ揪寮忛夋嫨浜嗕竴涓┖闆嗗茍鎸囧畾浜?XPathConstants.NODE錛屽垯 evaluate() 榪斿洖 null銆?

濡傛灉涓嶈兘瀹屾垚瑕佹眰鐨勮漿鎹紝evaluate() 灝嗘姏鍑?XPathException銆?


鍚嶇О絀洪棿涓婁笅鏂?/font>

鑻?XML 鏂囨。涓殑鍏冪礌鍦ㄥ悕縐扮┖闂翠腑錛屾煡璇㈣鏂囨。鐨?XPath 琛ㄨ揪寮忓繀欏諱嬌鐢ㄧ浉鍚岀殑鍚嶇О絀洪棿銆俋Path 琛ㄨ揪寮忎笉涓瀹氳浣跨敤鐩稿悓鐨勫墠緙錛屽彧闇瑕佸悕縐扮┖闂?URI 鐩稿悓鍗沖彲銆備簨瀹炰笂錛屽鏋?XML 鏂囨。浣跨敤榛樿鍚嶇О絀洪棿錛岄偅涔堝敖綆$洰鏍囨枃妗f病鏈変嬌鐢ㄥ墠緙錛孹Path 琛ㄨ揪寮忎篃蹇呴』浣跨敤鍓嶇紑銆?

浣嗘槸錛孞ava 紼嬪簭涓嶆槸 XML 鏂囨。錛屽洜姝や笉鑳界敤涓鑸殑鍚嶇О絀洪棿瑙f瀽銆傚繀欏繪彁渚涗竴涓璞″皢鍓嶇紑鏄犲皠鍒板悕縐扮┖闂?URI銆傝瀵硅薄鏄?javax.xml.namespace.NamespaceContext 鎺ュ彛鐨勫疄渚嬨傛瘮濡傦紝鍋囪鍥句功鏂囨。鏀懼湪 http://www.example.com/books 鍚嶇О絀洪棿涓紝濡?娓呭崟 5 鎵紺猴細(xì)


娓呭崟 5. 浣跨敤榛樿鍚嶇О絀洪棿鐨?XML 鏂囨。
<inventory xmlns="http://www.example.com/books">
    <book year="2000">
        <title>Snow Crash</title>
        <author>Neal Stephenson</author>
        <publisher>Spectra</publisher>
        <isbn>0553380958</isbn>
        <price>14.95<price>
    </book>

    <!-- more books... -->

<inventory>

鏌ユ壘 Neal Stephenson 鍏ㄩ儴钁椾綔鏍囬鐨?XPath 琛ㄨ揪寮忓氨瑕佹敼涓?//pre:book[pre:author="Neal Stephenson"]/pre:title/text()銆備絾鏄紝蹇呴』灝嗗墠緙 pre 鏄犲皠鍒?URI http://www.example.com/books銆?code>NamespaceContext 鎺ュ彛鍦?Java 杞歡寮鍙戝伐鍏風(fēng)錛圝DK錛夋垨 JAXP 涓病鏈夐粯璁ゅ疄鐜頒技涔庢湁鐐圭錛屼絾紜疄濡傛銆備笉榪囷紝鑷繁瀹炵幇涔熶笉闅俱?a >娓呭崟 6 瀵逛竴涓悕縐扮┖闂寸粰鍑轟簡綆鍗曠殑瀹炵幇銆傝繕闇瑕佹槧灝?xml 鍓嶇紑銆?


娓呭崟 6. 緇戝畾涓涓悕縐扮┖闂村拰榛樿鍚嶇О絀洪棿鐨勭畝鍗曚笂涓嬫枃
import Java.util.Iterator;
import javax.xml.*;
import javax.xml.namespace.NamespaceContext;

public class PersonalNamespaceContext implements NamespaceContext {

    public String getNamespaceURI(String prefix) {
        if (prefix == null) throw new NullPointerException("Null prefix");
        else if ("pre".equals(prefix)) return "http://www.example.org/books";
        else if ("xml".equals(prefix)) return XMLConstants.XML_NS_URI;
        return XMLConstants.NULL_NS_URI;
    }

    // This method isn't necessary for XPath processing.
    public String getPrefix(String uri) {
        throw new UnsupportedOperationException();
    }

    // This method isn't necessary for XPath processing either.
    public Iterator getPrefixes(String uri) {
        throw new UnsupportedOperationException();
    }

}

浣跨敤鏄犲皠瀛樺偍緇戝畾鍜屽鍔?setter 鏂規(guī)硶瀹炵幇鍚嶇О絀洪棿涓婁笅鏂囩殑閲嶇敤涔熶笉闅俱?

鍒涘緩 NamespaceContext 瀵硅薄鍚庯紝鍦ㄧ紪璇戣〃杈懼紡涔嬪墠灝嗗叾瀹夎鍒?XPath 瀵硅薄涓娿備互鍚庡氨鍙互鍍忎互鍓嶄竴鏍鋒槸鐢ㄨ繖浜涘墠緙鏌ヨ浜嗐傛瘮濡傦細(xì)


娓呭崟 7. 浣跨敤鍚嶇О絀洪棿鐨?XPath 鏌ヨ
  XPathFactory factory = XPathFactory.newInstance();
  XPath xpath = factory.newXPath();
  xpath.setNamespaceContext(new PersonalNamespaceContext());
  XPathExpression expr 
    = xpath.compile("http://pre:book[pre:author='Neal Stephenson']/pre:title/text()");

  Object result = expr.evaluate(doc, XPathConstants.NODESET);
  NodeList nodes = (NodeList) result;
  for (int i = 0; i < nodes.getLength(); i++) {
      System.out.println(nodes.item(i).getNodeValue()); 
  }

鍑芥暟姹傝В鍣?/font>

鏈夋椂鍊欙紝鍦?Java 璇█涓畾涔夌敤浜?XPath 琛ㄨ揪寮忕殑鎵╁睍鍑芥暟寰堟湁鐢ㄣ傝繖浜涘嚱鏁板彲浠ユ墽琛岀敤綰?XPath 寰堥毦鎴栬呮棤娉曟墽琛岀殑浠誨姟銆備笉榪囧繀欏繪槸鐪熸鐨勫嚱鏁幫紝鑰屼笉鏄殢鎰忕殑鏂規(guī)硶銆傚氨鏄涓嶈兘鏈夊壇浣滅敤銆傦紙XPath 鍑芥暟鍙互鎸夌収浠繪剰鐨勯『搴忔眰鍊間換鎰忓嬈°傦級(jí)

閫氳繃 Java XPath API 璁塊棶鐨勬墿灞曞嚱鏁板繀欏誨疄鐜?javax.xml.xpath.XPathFunction 鎺ュ彛銆傝繖涓帴鍙e彧澹版槑浜嗕竴涓柟娉?evaluate錛?

public Object evaluate(List args) throws XPathFunctionException

璇ユ柟娉曞繀欏昏繑鍥?Java 璇█鑳藉杞崲鍒?XPath 鐨勪簲縐嶇被鍨嬩箣涓錛?

  • String
  • Double
  • Boolean
  • Nodelist
  • Node

姣斿錛?a >娓呭崟 8 鏄劇ず浜嗕竴涓墿灞曞嚱鏁幫紝瀹冩鏌?ISBN 鐨勬牎楠屽拰騫惰繑鍥?Boolean銆傝繖涓牎楠屽拰鐨勫熀鏈鍒欐槸鍓嶄節(jié)浣嶆暟鐨勬瘡涓浣嶄箻涓婂畠鐨勪綅緗紙鍗崇涓浣嶆暟涔樹笂 1錛岀浜屼綅鏁頒箻涓?2錛屼緷嬈$被鎺級(jí)銆傚皢榪欎簺鏁板姞璧鋒潵鐒跺悗鍙栭櫎浠?11 鐨勪綑鏁般傚鏋滀綑鏁版槸 10錛岄偅涔堟渶鍚庝竴浣嶆暟灝辨槸 X銆?


娓呭崟 8. 媯(gè)鏌?ISBN 鐨?XPath 鎵╁睍鍑芥暟
import Java.util.List;
import javax.xml.xpath.*;
import org.w3c.dom.*;

public class ISBNValidator implements XPathFunction {

  // This class could easily be implemented as a Singleton.
    
  public Object evaluate(List args) throws XPathFunctionException {

    if (args.size() != 1) {
      throw new XPathFunctionException("Wrong number of arguments to valid-isbn()");
    }

    String isbn;
    Object o = args.get(0);

    // perform conversions
    if (o instanceof String) isbn = (String) args.get(0);
    else if (o instanceof Boolean) isbn = o.toString();
    else if (o instanceof Double) isbn = o.toString();
    else if (o instanceof NodeList) {
        NodeList list = (NodeList) o;
        Node node = list.item(0);
        // getTextContent is available in Java 5 and DOM 3.
        // In Java 1.4 and DOM 2, you'd need to recursively 
        // accumulate the content.
        isbn= node.getTextContent();
    }
    else {
        throw new XPathFunctionException("Could not convert argument type");
    }

    char[] data = isbn.toCharArray();
    if (data.length != 10) return Boolean.FALSE;
    int checksum = 0;
    for (int i = 0; i < 9; i++) {
        checksum += (i+1) * (data[i]-'0');
    }
    int checkdigit = checksum % 11;

    if (checkdigit + '0' == data[9] || (data[9] == 'X' && checkdigit == 10)) {
        return Boolean.TRUE;
    }
    return Boolean.FALSE;

  }

}

涓嬩竴姝ヨ榪欎釜鎵╁睍鍑芥暟鑳藉鍦?Java 紼嬪簭涓嬌鐢ㄣ備負(fù)姝わ紝闇瑕佸湪緙栬瘧琛ㄨ揪寮忎箣鍓嶅悜 XPath 瀵硅薄瀹夎 javax.xml.xpath.XPathFunctionResolver銆傚嚱鏁版眰瑙e櫒灝嗗嚱鏁扮殑 XPath 鍚嶇О鍜屽悕縐扮┖闂?URI 鏄犲皠鍒板疄鐜拌鍑芥暟鐨?Java 綾匯?a >娓呭崟 9 鏄竴涓畝鍗曠殑鍑芥暟姹傝В鍣紝灝嗘墿灞曞嚱鏁?valid-isbn 鍜屽悕縐扮┖闂?http://www.example.org/books 鏄犲皠鍒?娓呭崟 8 涓殑綾匯傛瘮濡傦紝XPath 琛ㄨ揪寮?//book[not(pre:valid-isbn(isbn))] 鍙互鎵懼埌 ISBN 鏍¢獙鍜屼笉鍖歸厤鐨勬墍鏈夊浘涔︺?


娓呭崟 9. 璇嗗埆 valid-isbn 鎵╁睍鍑芥暟鐨勪笂涓嬫枃
iimport javax.xml.namespace.QName;
import javax.xml.xpath.*;

public class ISBNFunctionContext implements XPathFunctionResolver {

  private static final QName name 
   = new QName("http://www.example.org/books", "valid-isbn");

  public XPathFunction resolveFunction(QName name, int arity) {
      if (name.equals(ISBNFunctionContext.name) && arity == 1) {
          return new ISBNValidator();
      }
      return null;
  }

}

鐢變簬鎵╁睍鍑芥暟蹇呴』鏈夊悕縐扮┖闂達(dá)紝鎵浠ヨ綆楀寘鍚墿灞曞嚱鏁扮殑琛ㄨ揪寮忔椂蹇呴』浣跨敤 NamespaceResolver錛屽嵆渚挎煡璇㈢殑鏂囨。娌℃湁浣跨敤浠諱綍鍚嶇О絀洪棿銆傜敱浜?XPathFunctionResolver銆?code>XPathFunction 鍜?NamespaceResolver 閮芥槸鎺ュ彛錛屽鏋滄柟渚跨殑璇濆彲浠ュ皢瀹冧滑鏀懼湪鎵鏈夌殑綾諱腑銆?


緇撴潫璇?/font>

鐢?SQL 鍜?XPath 榪欐牱鐨勫0鏄庢ц璦緙栧啓鏌ヨ錛岃姣斾嬌鐢?Java 鍜?C 榪欐牱鐨勫懡浠ゅ紡璇█瀹規(guī)槗寰楀銆備絾鏄紝鐢?Java 鍜?C 榪欐牱鐨勫浘鐏靛畬鏁磋璦緙栧啓澶嶆潅鐨勯昏緫錛屽張姣?SQL 鍜?XPath 榪欐牱鐨勫0鏄庢ц璦瀹規(guī)槗寰楀銆傛墍騫哥殑鏄紝閫氳繃浣跨敤 Java Database Connectivity (JDBC) 鍜?javax.xml.xpath 涔嬬被鐨?API 鍙互灝嗕袱鑰呯粨鍚堣搗鏉ャ傞殢鐫涓栫晫涓婅秺鏉ヨ秺澶氱殑鏁版嵁杞悜 XML錛?code>javax.xml.xpath 灝嗕笌 Java.sql 涓鏍峰彉寰楄秺鏉ヨ秺閲嶈銆?/p>

Eric.Zhou 2006-09-18 13:34 鍙戣〃璇勮
]]>
XPath鐨勮娉?/title><link>http://m.tkk7.com/rain1102/archive/2006/09/18/70209.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Mon, 18 Sep 2006 01:18:00 GMT</pubDate><guid>http://m.tkk7.com/rain1102/archive/2006/09/18/70209.html</guid><wfw:comment>http://m.tkk7.com/rain1102/comments/70209.html</wfw:comment><comments>http://m.tkk7.com/rain1102/archive/2006/09/18/70209.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/rain1102/comments/commentRss/70209.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/rain1102/services/trackbacks/70209.html</trackback:ping><description><![CDATA[     鎽樿: 褰撳墠浣嶇疆 褰撴垜浠嬌鐢╔SLT澶勭悊XML婧愭枃妗f槸錛屾垜浠敤Context鏉ヨ〃紺哄綋鍓嶆鍦ㄨ妯℃澘澶勭悊鐨勮妭鐐逛綅緗傛瘮濡倄sl:template match="/"璇彞涓〃紺篊ontext鍦ㄦ枃妗g殑鏍?root)鑺傜偣銆傛垜涓嶇煡閬撳浣曞噯紜殑緲昏瘧Context榪欎釜璇嶏紝瀹冪被浼間簬C璇█閲岀殑鎸囬拡錛岃〃紺虹▼搴忓綋鍓嶈繍琛岀殑浣嶇疆銆傜悊瑙ontext瀵逛簬姝g‘澶勭悊XSL妯℃澘闈炲父閲嶈錛屽綋鎮(zhèn)ㄧ殑XSL妯℃澘杈撳嚭鐨勬枃妗e拰鎮(zhèn)ㄦ兂瑕佺殑涓嶄竴鏍鳳紝鏈鍏?..  <a href='http://m.tkk7.com/rain1102/archive/2006/09/18/70209.html'>闃呰鍏ㄦ枃</a><img src ="http://m.tkk7.com/rain1102/aggbug/70209.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/rain1102/" target="_blank">Eric.Zhou</a> 2006-09-18 09:18 <a href="http://m.tkk7.com/rain1102/archive/2006/09/18/70209.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>xsl榪囩▼瑙f瀽http://m.tkk7.com/rain1102/archive/2006/09/18/70207.htmlEric.ZhouEric.ZhouMon, 18 Sep 2006 01:14:00 GMThttp://m.tkk7.com/rain1102/archive/2006/09/18/70207.htmlhttp://m.tkk7.com/rain1102/comments/70207.htmlhttp://m.tkk7.com/rain1102/archive/2006/09/18/70207.html#Feedback0http://m.tkk7.com/rain1102/comments/commentRss/70207.htmlhttp://m.tkk7.com/rain1102/services/trackbacks/70207.html<?xml version="1.0" encoding="iso-8859-1"?>

榪欐槸鏍囧噯鐨刋ML鏂囨。鐨勯琛屼唬鐮侊紝鍥犱負(fù)XSLT鏈韓涔熸槸XML鏂囨。銆?br />encoding灞炴х敤鏉ュ畾涔夋枃妗d嬌鐢ㄧ殑緙栫爜褰㈠紡錛宨so-8859-1涓昏鏀寔瑗挎鍜屽寳緹庣殑璇█緙栫爜銆?br />濡傛灉浣犳兂浣跨敤綆浣撲腑鏂囷紝閭d箞灝卞簲璇ュ啓鎴愶細(xì)

<?xml version="1.0" encoding="GB2312"?>

鎺ヤ笅鍘葷殑浠g爜鏄?

<xsl:stylesheet  xmlns:xsl="

榪欐槸鏍囧噯鐨刋SLT鏂囦歡棣栬浠g爜銆倄sl:stylesheet浠g爜鐨勬剰鎬濇槸灝嗘枃妗d綔涓轟竴涓牱寮忚〃鏉?stylesheet)澶勭悊銆?br />xmlns:xsl灞炴ф槸涓涓悕瀛楃┖闂村0鏄庯紝鍜孹ML涓殑鍚嶅瓧絀洪棿浣跨敤鏂規(guī)硶涓鏍鳳紝鐢ㄦ潵闃叉鍏冪礌鍚嶇О閲嶅鍜屾販涔便?br />鍏朵腑鍓嶇紑xsl鐨勬剰鎬濇槸鏂囨。涓嬌鐢ㄧ殑鍏冪礌閬靛畧W3C鐨刋SLT瑙勮寖銆?br />鏈鍚庣殑version灞炴ц鏄庢牱寮忚〃鍙噰鐢╔SLT 1.0鐨勬爣鍑嗗姛鑳斤紝榪欎篃鏄洰鍓嶄粎鏈夌殑鏍囧噯銆?/p>

<xsl:template match="/">

涓涓?lt;xsl:template>鍏冪礌瀹氫箟涓涓ā鏉胯鍒欍傚睘鎬atch="/"璇存槑XML婧愭枃妗d腑錛岃繖涓ā鏉胯鍒欎綔鐢ㄧ殑璧風(fēng)偣銆?/"鏄竴縐峏Path璇硶錛屾垜浠湪鍚庨潰灝嗚緇嗚榪幫紝榪欓噷鐨?/"浠h〃XML緇撴瀯鏍?wèi)鐨勬?root)銆?/p>

鎺ヤ笅鍘葷殑浠g爜鏄?

<html>

<head>

<title>First XSLT Example</title>

</head>

<body>

<p><xsl:value-of select="greeting"/></p>

</body>

</html>

璇存槑錛氬綋妯℃澘瑙勫垯琚Е鍙戯紝妯℃澘鐨勫唴瀹瑰氨浼?xì)鎺у埗杈撳嚭鐨劸l撴灉銆備緥瀛愪腑錛屾ā鏉垮ぇ閮ㄥ垎鍐呭鐢盚TML鍏?br />绱犲拰鏂囨湰鏋勬垚銆傚彧鏈?lt;xsl:value-of>鍏冪礌鏄疿SLT璇硶錛岃繖閲?lt;xsl:value-of>鐨勪綔鐢ㄦ槸鎷瘋礉鍘熸枃妗d腑鐨?br />涓涓妭鐐圭殑鍊煎埌杈撳嚭鏂囨。銆傝宻elect灞炴у垯璇︾粏鎸囧畾瑕佸鐞嗙殑鑺傜偣鍚嶇О銆傝繖鏄疿Path璇硶錛?greeting"
鐨勬剰鎬濆氨鏄鎵炬牴鑺傜偣鍚嶄負(fù)greeting鐨勫厓绱狅紝騫剁敤妯℃澘鏉ュ鐞嗚繖涓妭鐐廣傚叿浣撶殑灝辨槸鎵懼埌<greeting>
鍏冪礌錛岀劧鍚庡皢鍏冪礌鐨勫?hello world"鎸夋ā鏉挎牱寮忔嫹璐濆埌杈撳嚭鏂囦歡銆?

鎻愮ず錛氱敱浜嶺ML鏂囨。鏄弗鏍肩殑灞傜駭緇撴瀯(鐢↖E5鏌ョ湅XML鏂囦歡錛屼細(xì)鐪嬭XML鏂囨。綾諱技澶氱駭鍏寵仈鑿滃崟)錛?br />鎵浠ユ垜浠艦璞$殑縐癤ML鏂囨。涓烘枃妗f爲(wèi)錛屽叾涓瘡涓瀵瑰厓绱犵О浣滄爲(wèi)鐨勪竴涓妭鐐廣傛牴鍏冪礌灝辨槸鏍硅妭鐐廣?/p>

鏈鍚庡叧闂墍鏈夊厓绱狅細(xì)

</xsl:template>

</xsl:stylesheet>

 



Eric.Zhou 2006-09-18 09:14 鍙戣〃璇勮
]]>
XML鎶宸т簲鍒?/title><link>http://m.tkk7.com/rain1102/archive/2006/09/18/70202.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Mon, 18 Sep 2006 00:47:00 GMT</pubDate><guid>http://m.tkk7.com/rain1102/archive/2006/09/18/70202.html</guid><wfw:comment>http://m.tkk7.com/rain1102/comments/70202.html</wfw:comment><comments>http://m.tkk7.com/rain1102/archive/2006/09/18/70202.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/rain1102/comments/commentRss/70202.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/rain1102/services/trackbacks/70202.html</trackback:ping><description><![CDATA[<div style="BORDER-RIGHT: #0099cc 0.75pt solid; PADDING-RIGHT: 4pt; BORDER-TOP: #0099cc 0.75pt solid; PADDING-LEFT: 4pt; BACKGROUND: #ddedfb; PADDING-BOTTOM: 4pt; BORDER-LEFT: #0099cc 0.75pt solid; PADDING-TOP: 4pt; BORDER-BOTTOM: #0099cc 0.75pt solid"> <span lang="EN-US"> <font size="2"> <font face="瀹嬩綋, MS Song"> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"> <strong> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">鎶宸?/span> </strong> <strong> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">1</span> </strong> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '"> <br /> </span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">銆銆</span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">XmlNode.InnerText</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">涓?/span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">.InnerXml</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">鐨勫尯鍒槸錛氬墠鑰呭皢鍐呭涓殑</span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '"><</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">鍜?/span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">></span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">鍒嗗埆鍙樻垚</span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '"><</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">鍜?/span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">></span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">錛屽洜姝わ紝甯屾湜灝嗕袱孌?/span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '"> XmlDocument </span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">鍚堝茍鐨勭▼搴忓彧鑳戒嬌鐢?/span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '"> <span lang="EN-US"> <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?> <o:p> </o:p> </span> </span> </p> <p class="code" style="MARGIN: 3.75pt"> <br />XmlDocumentFragment.InnerXml = XmlNode.OuterXml<o:p></o:p></p> </font> </font> </span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '"> <br /> </span> <strong> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">鎶宸?/span> </strong> <strong> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">2</span> </strong> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '"> <br /> <o:p> <p class="code" style="MARGIN: 3.75pt"> <span lang="EN-US"> <font size="2"> <font face="瀹嬩綋, MS Song">/XPath: string end-with <br /><br /><xsl:for-each select="root/data[substring-after(@name,'.')= 'Text' and string-length(value)>0]"><o:p></o:p></font> </font> </span> </p> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '"> <br /> </span> <strong> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">鎶宸?/span> </strong> <strong> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">3</span> </strong> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '"> <br /> </span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">銆銆涓涓?/span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">XML</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">鏂囨。鍦?/span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">Load</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">鏃跺鏋滃け璐ワ紝灝辨槸鏍規(guī)湰涓嶅悎娉曪紱鏄惁絎﹀悎鏌愪釜</span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">Schema</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">錛?/span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">XSD</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">錛夌殑瑕佹眰鍒欐槸鏈夋晥鎬?/span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">(valid)</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">媯(gè)鏌ワ紝鏂規(guī)硶鏄嬌鐢?/span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">XmlValidatingReader</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">瀵硅薄鐨?/span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">Schemas</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">鍜?/span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">ValidationType</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">灞炴с?/span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '"> <br /> </span> <strong> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">鎶宸?/span> </strong> <strong> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">4</span> </strong> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '"> <br /> </span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">銆銆</span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">XmlDataDocument</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">綾繪槸浠?/span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">XmlDocument</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">媧劇敓鍑烘潵鐨勶紝鏈閲嶈鐨勬槸澧炲姞浜嗕竴涓?/span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">DataSet</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">灞炴с備笉榪囪繖涓被涓嶆槸</span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">System.Xml</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">鎻愪緵鐨勶紝鑰屾槸</span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">System.Data</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">鎻愪緵鐨勩傚浜庢繪槸瑕佽窡鏁版嵁搴撴墦浜ら亾鐨勫簲鐢ㄧ▼搴忔潵璇達(dá)紝鍙嶆鏄寮曠敤</span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">System.Data</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">鐨勶紝涓嶅鍏ㄩ儴鐢?/span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">XmlDataDocument</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">銆?/span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '"> <br /> </span> <strong> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">鎶宸?/span> </strong> <strong> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">5</span> </strong> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '"> <br /> </span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">銆銆濡備綍灝?/span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">XmlDataDocument</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">瀵硅薄涓殑</span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">DataSet</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">鏇存柊淇濆瓨鍒版暟鎹簱涓紵</span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">DataSet</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">鏈韓鏈変竴涓?/span> <span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: ' '">AcceptChanges</span> <span style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: ' '; mso-hansi-font-family: ' '">鏂規(guī)硶錛屾墍浠ュ彧闇瑕侊細(xì)<br /><br /><span lang="EN-US"><font size="2"><font face="瀹嬩綋, MS Song">    xmlDataDoc.DataSet.AcceptChanges();</font></font></span></span> </o:p> </span> </div> <p class="code" style="MARGIN: 3.75pt"> <span lang="EN-US"> <font size="2"> <font face="瀹嬩綋, MS Song"> <o:p> </o:p> </font> </font> </span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US"> <o:p></o:p></span> </p><img src ="http://m.tkk7.com/rain1102/aggbug/70202.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/rain1102/" target="_blank">Eric.Zhou</a> 2006-09-18 08:47 <a href="http://m.tkk7.com/rain1102/archive/2006/09/18/70202.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>XML鏂囨硶鍒嗘瀽http://m.tkk7.com/rain1102/archive/2006/09/18/70200.htmlEric.ZhouEric.ZhouMon, 18 Sep 2006 00:44:00 GMThttp://m.tkk7.com/rain1102/archive/2006/09/18/70200.htmlhttp://m.tkk7.com/rain1102/comments/70200.htmlhttp://m.tkk7.com/rain1102/archive/2006/09/18/70200.html#Feedback0http://m.tkk7.com/rain1102/comments/commentRss/70200.htmlhttp://m.tkk7.com/rain1102/services/trackbacks/70200.html闃呰鍏ㄦ枃

Eric.Zhou 2006-09-18 08:44 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 97精品免费视频| 人体大胆做受免费视频| 蜜臀AV免费一区二区三区| 久久精品国产精品亚洲蜜月| 91在线视频免费观看| 亚洲乱亚洲乱妇无码麻豆| 野花香在线视频免费观看大全| 亚洲自偷自偷偷色无码中文| 人碰人碰人成人免费视频| 亚洲精品国产va在线观看蜜芽| 日韩在线观看免费| 亚洲综合图色40p| 一个人看的www免费视频在线观看| 久久久久亚洲精品美女| 久久精品国产免费观看| 国产成人精品亚洲2020| 最新69国产成人精品免费视频动漫| 亚洲AV成人无码久久WWW| 亚洲黄片毛片在线观看| 97人妻精品全国免费视频| 久久精品亚洲精品国产色婷| 国产在线a免费观看| 亚洲av无码一区二区三区在线播放| 四虎影视在线永久免费观看| A毛片毛片看免费| 内射干少妇亚洲69XXX| 最新中文字幕免费视频| 免费人人潮人人爽一区二区| 亚洲精品高清国产一线久久| 18女人水真多免费高清毛片| 亚洲hairy多毛pics大全| 亚洲人成色77777| 国产精品成人免费一区二区| 美女又黄又免费的视频| 午夜亚洲www湿好大| 暖暖日本免费在线视频| 精品国产免费一区二区三区香蕉| 久久久久亚洲国产| 亚洲色WWW成人永久网址| 亚洲免费在线视频观看| 日本中文字幕免费看|