-1

これは、Java で使用される XQuery 用です。私のコードは他の XML ファイルで動作していますが、今回は必要なデータが返されません。問題のあるコードは以下です。それの何が問題なのですか?ありがとう。

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>
4

1 に答える 1

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>";
于 2013-03-13T18:33:06.963 に答える