2012-02-01 110 views
0

嘿,我是使用eXist和Xquery的新手。XML解析錯誤:Xquery中的文檔元素後的垃圾

這是我的問題。我嘗試使用xQuery從xml文件(存儲在eXist數據庫)中檢索一些數據。當我只在沒有任何條件的情況下進行檢索時,情況會好轉。 當我使用了一些條件,它給了我這個錯誤:

XML Parsing Error: junk after document element

下面是XML文件:

<?xml version="1.0" ?> 
<produk> 
    <prod_detail> 
     <prod_name>Spreadrum G189</prod_name> 
     <struc>PDA</struc> 
     <company_org>pti</company_org> 
    </prod_detail> 
    <hard_spec> 
     <chipset>SC6800H</chipset> 
     <comm> 
      <sim_mode> 
       <single></single> 
       <dual></dual> 
      </sim_mode> 
      <netw_freq>EGSM900/DCS1800</netw_freq> 
      <gprs></gprs> 
      <voice_encode></voice_encode> 
     </comm> 
     <disp> 
      <lcd_info>3.5 HVGA 320*480</lcd_info> 
      <back_light>0</back_light> 
      <touch_scr>1</touch_scr> 
      <vice_scr>0</vice_scr> 
      <tp_conn>welded</tp_conn> 
      <com_ipcall_disp>1</com_ipcall_disp> 
     </disp> 
     <cam> 
      <cam_pos> 
       <front_cam>1</front_cam> 
       <back_cam>1</back_cam> 
      </cam_pos> 
      <cam_pix> 
       <front_cam>0.3Mp</front_cam> 
       <back_cam>2Mp</back_cam> 
      </cam_pix> 
      <cam_chip>CMOS</cam_chip> 
      <flash>1</flash> 
      <cam_con>Welded</cam_con> 
     </cam> 
     <pcb_size> </pcb_size> 
     <sound> 
      <speaker>class D (1524)</speaker> 
      <player>yes</player> 
     </sound> 
     <store> 
      <memory_capacity>1G+256M</memory_capacity> 
      <mem_card>1</mem_card> 
     </store> 
     <data_trans> 
      <USB>1</USB> 
      <infrared>0</infrared> 
      <bluetooth>1</bluetooth> 
      <wifi></wifi> 
     </data_trans> 
     <mult> 
      <fm>1</fm> 
      <tv>0</tv> 
      <gps>0</gps> 
     </mult> 
     <butt> 
      <keypad> 
       <qwerty>0</qwerty> 
       <func_key>5</func_key> 
       <num_key>0</num_key> 
       <side_key>volume and camera key (FPC)</side_key> 
       <key_ext></key_ext> 
       <color_key>white</color_key> 
      </keypad> 
      <touch_key>0</touch_key> 
      <trackball>0</trackball> 
      <opt_mouse>0</opt_mouse> 
      <led>0</led> 
     </butt> 
     <ui> 
      <connect_sim>rangkap 3</connect_sim> 
      <ext_deck>TF socket card</ext_deck> 
      <rf_test_port>no</rf_test_port> 
      <intfc_io>micro 5 pin usb</intfc_io> 
      <headphone_jack>micro 5 pin usb</headphone_jack> 
      <charging_ui>micro 5 pin usb</charging_ui> 
      <ui_usb>micro 5 pin usb</ui_usb> 
      <speed_touch>0</speed_touch> 
     </ui> 
     <other> 
      <batt>900mAh</batt> 
      <antenna>PIFA</antenna> 
      <torch>0</torch> 
     </other> 

    </hard_spec> 

    <soft_spec> 
     <style>android iphone</style> 
     <comm> 
      <sim_vas>1</sim_vas> 
      <data_con> 
       <gprs>1</gprs> 
       <wap>1</wap> 
      </data_con> 
      <message> 
       <sms> 
        <swr>1</swr> 
        <sin>1</sin> 
        <sout>1</sout> 
        <sdrf>1</sdrf> 
        <ssent>1</ssent> 
       </sms> 
       <mms> 
        <mwr>1</mwr> 
        <min>1</min> 
        <mout>1</mout> 
        <mdrf>1</mdrf> 
        <msent>1</msent> 
        <group_mms>1</group_mms> 
        <mms_chat_room>1</mms_chat_room> 
        <comm_bm>1</comm_bm> 
       </mms> 
       <email> 
        <esent>0</esent> 
        <erecv>0</erecv> 
        <ein>0</ein> 
        <eout>0</eout> 
        <esent>0</esent> 
        <edrft>0</edrft> 
        <eact>0</eact> 
       </email> 
      </message> 
      <phone_book> 
       <capacity>500</capacity> 
       <search_con>1</search_con> 
       <add>1</add> 
       <save>1</save> 
       <dial>1</dial> 
       <grup_num>1</grup_num> 
       <captive_chk>1</captive_chk> 
      </phone_book> 
      <call> 
       <sim_hist> 
        <sim1>1</sim1> 
        <sim2>1</sim2> 
       </sim_hist> 
       <dial_up_ip>1</dial_up_ip> 
       <call_grup>0</call_grup> 
       <set_call_id>0</set_call_id> 
       <call_div>1</call_div> 
       <call_bar>1</call_bar> 
       <call_hold>1</call_hold> 
       <call_redial>1</call_redial> 
       <call_fee>1</call_fee> 
       <handsfree>1</handsfree> 
       <cdial>1</cdial> 
       <crecv>1</crecv> 
       <call_rec></call_rec> 
      </call> 
     </comm> 
     <multimedia> 
      <cam> 
       <sw_cam>1</sw_cam> 
       <sub_cam>1</sub_cam> 
       <main_cam>1</main_cam> 
       <capt>1</capt> 
       <zoom>1</zoom> 
       <contras>1</contras> 
       <save>1</save> 
       <flash>0</flash> 
       <set_to_wpp>1</set_to_wpp> 
       <view_pic>1</view_pic> 
       <wb_conf>1</wb_conf> 
       <cont_photo>1</cont_photo> 
       <exposure_comp>1</exposure_comp> 
       <effect_set>1</effect_set> 
      </cam> 
      <video> 
       <vid_form> 
        <mp4>1</mp4> 
        <trigp>1</trigp> 
        <avi>1</avi> 
        <rmvb>1</rmvb> 
        <king_mov>1</king_mov> 
       </vid_form> 
       <vid_rec>1</vid_rec> 
       <sw_cam>1</sw_cam> 
       <vid_fcam>0</vid_fcam> 
       <vid_rcam>1</vid_rcam> 
       <vid_zoom>1</vid_zoom> 
       <contras>1</contras> 
       <save> 
        <phone>1</phone> 
        <mmc>1</mmc> 
       </save> 
       <vid_play>1</vid_play> 
       <vid_disp>1</vid_disp> 
       <adj_vol>1</adj_vol> 
       <add_vid> 
        <from_card>1</from_card> 
        <from_phone>1</from_phone> 
       </add_vid> 
       <vid_app>1</vid_app> 
      </video> 
      <audio> 
       <aud_form> 
        <mp3>1</mp3> 
        <wav>1</wav> 
        <midi>1</midi> 
       </aud_form> 
       <play>1</play> 
       <playlist>1</playlist> 
       <play_sett>1</play_sett> 
       <back_sound>1</back_sound> 
       <btooth_aud_out>0</btooth_aud_out> 
       <adj_vol>1</adj_vol> 
       <add> 
         <from_card>1</from_card> 
         <from_phone>1</from_phone> 
        </add> 
       <radio>1</radio> 
       <radio_menu> 
        <rad_play>1</rad_play> 
        <adj_vol>1</adj_vol> 
        <select_feq>1</select_feq> 
        <save_freq>0</save_freq> 
        <search_freq>1</search_freq> 
        <record>0</record> 
        <save> 
         <card>0</card> 
         <phone>0</phone> 
        </save> 
       </radio_menu> 
       <sound_rec>1</sound_rec> 
       <sound_rec_menu> 
        <record>1</record> 
        <play>1</play> 
        <save> 
         <card>1</card> 
         <phone>1</phone> 
        </save> 
       </sound_rec_menu>     
      </audio> 
      <imaging> 
       <im_viewer>1</im_viewer> 
       <im_viewer_menu> 
        <rotate>1</rotate> 
        <zoom>1</zoom> 
        <slide>1</slide> 
        <set_wpp>1</set_wpp> 
        <send>1 
         <via_btooth>1</via_btooth> 
         <via_mms>1</via_mms> 
        </send> 
        <edit>1</edit> 
        <detail>1</detail> 
       </im_viewer_menu> 
       <photo_editor>1</photo_editor> 
       <photo_editor_menu> 
        <auto_resize>0</auto_resize> 
       </photo_editor_menu> 
      </imaging> 
      <another_mfunc> 
       <tv>1</tv> 
       <games>1</games> 
       <gps>0</gps> 
       <keypad_lock>1</keypad_lock> 
      </another_mfunc> 
     </multimedia> 
     <service> 
      <sim_serv> 
       <stk_sim_1>1</stk_sim_1> 
       <stk_sim_2>1</stk_sim_2> 
       <browsing>1</browsing> 
      </sim_serv> 
      <chat>1</chat> 
      <java>0</java> 
      <opera>0</opera> 
      <m_offc>0</m_offc> 
      <fb_sc>0</fb_sc> 
      <pimo_sc>0</pimo_sc> 
      <tpulsa_sc>0</tpulsa_sc> 
     </service> 
     <tools> 
      <btooth> 
       <on_off>1</on_off> 
       <send>1</send> 
       <recv>1</recv> 
       <a2dp>0</a2dp> 
      </btooth> 
      <cald>1</cald> 
      <calc>1</calc> 
      <task>0</task> 
      <alarm>1</alarm> 
      <w_clock>1</w_clock> 
      <u_convrt>1</u_convrt> 
      <curr_conv>1</curr_conv> 
      <health_man>1</health_man> 
      <ebook_read>1</ebook_read> 
      <swatch>0</swatch> 
      <notes>1</notes> 
      <code_table>1</code_table> 
      <updownload_pbook>0</updownload_pbook> 
      <usr_prof>1</usr_prof> 
      <handwritting>1</handwritting> 
     </tools> 
     <sett> 
      <file_man> 
       <int_mem>1</int_mem> 
       <ext_mem>1</ext_mem> 
       <rwmrmov>1</rwmrmov> 
       <format>1</format> 
      </file_man> 
      <disp> 
       <wpp>1</wpp> 
       <ssaver>1</ssaver> 
       <pon_disp>1</pon_disp> 
       <poff_disp>1</poff_disp> 
       <show_own_num>0</show_own_num> 
      </disp> 
      <p_sett> 
       <sch_pow_on>1</sch_pow_on> 
       <in_lang> 
        <eng>1</eng> 
        <stroke>1</stroke> 
        <piyin>1</piyin> 
        <french>0</french> 
        <german>0</german> 
        <spain>0</spain> 
        <russian>0</russian> 
        <indonesian>1</indonesian> 
        <portugis>0</portugis> 
        <turkish>0</turkish> 
        <persian>0</persian> 
        <italia>0</italia> 
       </in_lang> 
       <lang> 
        <eng>1</eng> 
        <ind>0</ind> 
        <china>1</china> 
        <french>0</french> 
        <german>0</german> 
        <spain>0</spain> 
        <russian>0</russian> 
        <indonesian>0</indonesian> 
        <portugis>0</portugis> 
        <turkish>0</turkish> 
        <persian>0</persian> 
        <italia>0</italia> 
       </lang> 
       <time_date>1</time_date> 
       <pref_in>0</pref_in> 
       <greet_text>0</greet_text> 
       <dedic_key>0</dedic_key> 
       <auto_update_time>1</auto_update_time> 
       <uart_sett>0</uart_sett> 

      </p_sett> 
      <s_oth> 
       <sound_sett>1</sound_sett> 
       <sound_sett_opt> 
        <aud_eff>1</aud_eff> 
        <bass_ench>0</bass_ench> 
       </sound_sett_opt> 
       <dual_sim_sw>0</dual_sim_sw> 
       <dual_sim_sett>0</dual_sim_sett> 
       <pen_call>0</pen_call> 
       <netw_sett>0</netw_sett> 
       <sec_sett>0</sec_sett> 
       <rest_sett>0</rest_sett> 
      </s_oth> 
      <misc_sett> 
       <sens_app> 
        <wall_shuff>0</wall_shuff> 
        <mp3_shuff>0</mp3_shuff> 
        <phone_shake>0</phone_shake> 
        <shake_to_read_sms>0</shake_to_read_sms> 
        <fm_chs_shake>0</fm_chs_shake> 
        <revrse_phone_mute>0</revrse_phone_mute> 
        <double_knock_mute>0</double_knock_mute> 
       </sens_app> 
       <voiceaid_sett> 
        <engin_sett>0</engin_sett> 
        <r_in_call>0</r_in_call> 
        <r_in_mess>0</r_in_mess> 
        <r_time_on_idle>0</r_time_on_idle> 
        <r_time_per_hour>0</r_time_per_hour> 
        <r_menu>0</r_menu> 
        <r_mesg>0</r_mesg> 
        <r_charge>0</r_charge> 
        <r_dial>0</r_dial> 
        <vol>0</vol> 
        <rate>0</rate> 
        <pith>0</pith> 
       </voiceaid_sett> 
       <wapp> 
        <wapp_form> 
         <gif>1</gif> 
         <bmp>1</bmp> 
         <jpg>1</jpg> 
        </wapp_form> 
        <wall_cust>1</wall_cust> 
        <dynamic_screensaver>0</dynamic_screensaver> 
       </wapp> 
      </misc_sett> 
     </sett> 

     <misc_func> 
      <ani> 
       <p_on_logo>1</p_on_logo> 
       <p_off_logo>1</p_off_logo> 
      </ani> 
      <ring> 
       <default>1</default> 
       <ring_form> 
        <mp3>1</mp3> 
        <midi>1</midi> 
        <wav>1</wav> 
       </ring_form> 
       <back_ring_for_call>1</back_ring_for_call> 
       <ring_edit>1</ring_edit> 
      </ring> 
      <vib_feedback> 
       <touch_scr>1</touch_scr> 
       <dial_num>1</dial_num> 
      </vib_feedback> 
     </misc_func> 
    </soft_spec> 
</produk> 

這是我的XQL代碼:

declare namespace xdb = "http://exist-db.org/xquery/xmldb"; 

for $x in doc("/db/skripsi/database/PTI/spreadrum_g189.xml")//* 
where data($x)="1" 
return $x 

的XQL代碼實際上在沙箱中工作得很好,但我不知道爲什麼它會給我錯誤,當我實際上實現它:(。

回答

0

我不知道如何重現您所舉報的問題,而是你的查詢將更加準確,如果你只適用平等的測試文檔的文本節點上:

declare namespace xdb = "http://exist-db.org/xquery/xmldb"; 
for $x in doc("/db/skripsi/database/PTI/spreadrum_g189.xml")//* 
where $x/text() = "1" 
return $x 

否則,將執行data()功能在文檔的所有元素節點上(即使是那些具有更多後代節點的節點),這可能需要很長時間,並且如果處理的數據變得太大,可能會導致錯誤。

希望這有助於 基督教

+0

它已經解決了:D它因爲路徑,我必須在頂層運行它,而不是與數據庫處於同一級別:)謝謝你的幫助:) – user1183172 2012-02-02 15:01:23

0
XML Parsing Error: junk after document element 

這指向收盤文檔節點後,一些垃圾內容 - </produk>後,在這種情況下。 XML不允許文檔節點之後的任何內容(expcept PIs, comments, whitespace)。在一些文本編輯器中打開內容,並確保沒有不需要的字符作爲保護空白,BOM等。

我從粘貼的文件中複製了整個XML內容,這也很好。也許試着把它複製回來。

+0

謝謝它只是運行時存在的路徑問題,因爲我之前說過,當我使用沙箱時,它完美地工作。謝謝你的幫助 :) – user1183172 2012-02-02 15:03:00