4

我正在尝试将 rss 数据从 Wordpress 加载到 MarkLogic 数据库中。数据格式如下:

<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0"
xmlns:excerpt="http://wordpress.org/export/1.2/excerpt/"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:wp="http://wordpress.org/export/1.2/">

<item>
  <wp:post_id>1</wp:post_id>
  <wp:post_title>title 1</wp:post_title>
  <dc:creator>bob</dc:creator>
</item>
<item>
  <wp:post_id>2</title>
  <wp:post_title>title 1</wp:post_title>
  <dc:creator>john</dc:creator>
</item>
</rss>

但是,当我运行 mlcp 命令时,我收到以下警告并且数据未插入到数据库中:

WARN mapreduce.ContentWriter: XDMP-DOCNONSBIND: No namespace binding for prefix wp
WARN mapreduce.ContentWriter: XDMP-DOCNONSBIND: No namespace binding for prefix dc

我使用的 mlcp 命令是:

./mlcp.sh import -host localhost -port 8088 -username admin -password admin -input_file_path  data.xml -mode local -input_file_type aggregates -aggregate_record_element item -aggregate_uri_id post_id -output_uri_prefix /resources/ -output_uri_suffix .xml

知道如何解决这个问题吗?

谢谢!

4

2 回答 2

2

您的测试用例有一个格式错误的行:<wp:post_id>2</title>. 当我使用 7.0-4 修复该问题并使用 mlcp-Hadoop2-1.2-3 时,我看到每个项目元素一个警告:

15/01/12 14:16:14 WARN mapreduce.ContentWriter: XDMP-DOCNONSBIND: No namespace binding for prefix wp at /resources/1.xml line 2 15/01/12 14:16:14 WARN mapreduce.ContentWriter: XDMP-DOCNONSBIND: No namespace binding for prefix wp at /resources/2.xml line 2

对我来说,这看起来像是一个 mlcp 错误。您的命名空间声明高于item元素的级别,并且它们不会被发送到服务器。

作为一种解决方法,您可以编辑 XML。或者你可以尝试http://marklogic.github.io/recordloader/用这样的东西:

$ recordloader.sh -DCONNECTION_STRING=xcc://admin:admin@localhost:8088 \
    -DRECORD_NAME=item -DID_NAME="#AUTO" data.xml

有关其他选项,请参阅http://marklogic.github.io/recordloader/

于 2015-01-12T22:26:32.840 回答
0

在我看来,它也确实像一个 MLCP 错误。但是,在放弃之前,请尝试将默认命名空间添加到根元素,这样它会像:

<rss version="2.0" xmlns="http://yournamespace.com/" 
xmlns:excerpt="http://wordpress.org/export/1.2/excerpt/"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:wp="http://wordpress.org/export/1.2/">
于 2015-01-13T11:04:24.960 回答