Marklogic Json Xquery не может запросить

Я загрузил результаты поиска Twitter JSON в Marklogic, преобразовав их в формат Marklogic JSON XML с помощью базового преобразователя.

Когда я пытаюсь запросить идентификатор, используя следующий XQuery

xquery version "1.0-ml";
declare namespace html = "http://www.w3.org/1999/xhtml";
for $r in doc()/json
let $b:=$r/id
return (
$b)

он продолжает жаловаться на отсутствие результатов.

Когда я использую doc (), xml отображается нормально, но doc () / json ничего не отображает.

Ниже приведен фрагмент XML, который Marklogic сгенерировал из выходных данных JSON из Twitter.

<?xml version="1.0" encoding="UTF-8"?>
<json type="object" xmlns="http://marklogic.com/xdmp/json/basic">
  <contributors type="null"/>
  <truncated type="boolean">false</truncated>
  <text type="string">@angelicism I love this site: http://t.co/XIjckcu0Lk</text>
  <in__reply__to__status__id type="number">369589929183297536</in__reply__to__status__id>
  <id type="number">369595664277065728</id>
  <favorite__count type="number">0</favorite__count>
...

person Stephen Lee    schedule 20.08.2013    source источник


Ответы (2)


Элементы, которые вы пытаетесь выбрать, находятся в пространстве имен, которое вам нужно указать в XPath; попробуй это:

xquery version "1.0-ml";
declare namespace html = "http://www.w3.org/1999/xhtml";
declare namespace json = "http://marklogic.com/xdmp/json/basic";
for $r in doc()/json:json
let $b:=$r/json:id
return (
$b)
person Will Goring    schedule 20.08.2013

Вероятно, это пространства имен или, возможно, двоичный узел. Полезные инструменты для отладки включают xdmp:describe и fn:namespace-uri.

xdmp:describe(
  doc()[1])

namespace-uri(
  doc()[1]/*)
person mblakele    schedule 20.08.2013