0

1.关于 google.com 的 Alexa API 响应: http ://pastebin.com/C5yjSjCf - 换句话说,它代表 12 个简单表中的一行,称为“ContactInfo”“按国家/地区排名”,...

还有一个例子(facebook.com) http://pastebin.com/mP813jYS

2.方案/数据类型信息:http ://awis.amazonaws.com/AWSAlexa/AWSAlexa.xsd

我可以用 xqilla 做基本的 xquery

查询.txt:

声明命名空间 aws="http://alexa.com";

/aws:UrlInfoResponse/aws:Response/aws:UrlInfoResult/aws:Alexa/aws:ContentData/aws:DataUrl

xqilla -i alexa.xml query.txt
Error parsing resource: file:///var/www/google  Error message: invalid content after root element's end tag [err:FODC0002]

xqilla -i google.xml query.txt
Error parsing resource: file:///var/www/Error message: invalid content after root element's end tag [err:FODC0002]

alexa.xml (我实际上要查询的文件),是许多这些 api 响应在彼此之后

我还尝试从 google.xml 中删除前 3 行和最后一行,并搜索并替换 aws:' 和前导空格,以使其更简单但仍然是相同的错误:(

4

1 回答 1

1

你说...

alexa.xml (我实际上要查询的文件),是许多这些 api 响应在彼此之后

这听起来像吗?你的文件看起来像这样吗?

<aws:UrlInfoResponse xmlns:aws="http://alexa.com">
    <!--...-->    
</aws:UrlInfoResponse>
<aws:UrlInfoResponse xmlns:aws="http://alexa.com">
    <!--...-->    
</aws:UrlInfoResponse>

这也可以解释你的错误。您只能拥有一个根元素。您需要将其全部包装在另一个元素中。

例子:

<responses>
    <aws:UrlInfoResponse xmlns:aws="http://alexa.com">
        <!--...-->    
    </aws:UrlInfoResponse>
    <aws:UrlInfoResponse xmlns:aws="http://alexa.com">
        <!--...-->    
    </aws:UrlInfoResponse>    
</responses>

XPath:

/responses/aws:UrlInfoResponse/aws:Response/aws:UrlInfoResult/aws:Alexa/aws:ContentData/aws:DataUrl
于 2014-04-08T18:53:48.727 回答