2013-03-13 119 views
-1

這是用於Java的XQuery。我的代碼與其他XML文件一起工作,但這次它不返回所需的數據。錯誤代碼如下。它有什麼問題?謝謝。爲什麼這個查詢不返回數據(在XQuery,Java中)?

String queryString = 
        "declare variable $docName as xs:string external;" + sep + 
        "  for $TRACK in doc($docName)/playlist/tracklist/track " + 
        " return " + 
        " <track><title>{$TRACK/title/text()}</title>" + 
        " <location>{$TRACK/location/text()}</location></track>"; 

這是目標XML:

<?xml version="1.0"?> 
    -<playlist xmlns="http://xspf.org/ns/0/" version="1"> 
     -<trackList>-<track><location>http://radiotool.com/242.mp3</location><title>New     York</title></track> 
        -<track><location>http://radiotool.com/243.mp3</location> <title>Chicago Repeater</title></track> 
</trackList></playlist> 

回答

1

這可能是因爲源XML使用命名空間和您的XPath不。這個怎麼樣:

String queryString = 
       "declare namespace xsp='http://xspf.org/ns/0/'; " + 
       "declare variable $docName as xs:string external;" + sep + 
       " for $TRACK in doc($docName)/xsp:playlist/xsp:trackList/xsp:track " + 
       " return " + 
       " <track><title>{$TRACK/xsp:title/text()}</title>" + 
       " <location>{$TRACK/xsp:location/text()}</location></track>"; 
+0

好它的工作!我寫了tracklist而不是trackList哈哈。 – 2013-03-13 18:36:25

相關問題