首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否在加载到Marklogic时更改xml元素?

是否在加载到Marklogic时更改xml元素?
EN

Stack Overflow用户
提问于 2012-05-15 15:08:40
回答 2查看 122关注 0票数 2

我有以下xml:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<patent-assignment>
 <patent-assignors>
    <patent-assignor>
      <name>TSAI, YU-WEN</name>
    </patent-assignor>
  </patent-assignors>
  <patent-assignees>
    <patent-assignee>
      <name>FARADAY TECHNOLOGY CORP.</name>
    </patent-assignee>
  </patent-assignees>
</patent-assignment>

现在,在将此xml文档加载到Marklogic中时,我希望将专利分配者的name元素更改为assignor-name,并将专利受让人的name元素更改为assignee-name,以便加载的xml应该如下所示:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
    <patent-assignment>
     <patent-assignors>
        <patent-assignor>
          <assignor-name>TSAI, YU-WEN</assignor-name>
        </patent-assignor>
      </patent-assignors>
      <patent-assignees>
        <patent-assignee>
          <assignee-name>FARADAY TECHNOLOGY CORP.</assignee-name>
        </patent-assignee>
      </patent-assignees>
    </patent-assignment>

我该怎么做Marklogic呢?

EN

回答 2

Stack Overflow用户

发布于 2012-05-15 16:15:29

我建议去Information Studio看看。以下是5分钟演练的链接:

http://community.marklogic.com/learn/5-minute-infostudio-walkthrough

Information Studio允许您选择输入收集器、应用任意数量的转换(可以从界面中输入XSLT或XQuery代码)、选择任何目标数据库,甚至调整需要分配的uri等内容,所有这些都可以在该界面中完成。

哈!

票数 1
EN

Stack Overflow用户

发布于 2012-05-28 22:17:23

XSLT非常适合这一点。因为您只想更改一个元素,所以只需要创建一个样式表和两个简单的模板。首先,进行身份转换:

代码语言:javascript
复制
<xsl:template match="node() | @*">
<xsl:apply-templates match="node() | @*">
</xsl:template>

这将简单地输出元素,就像它们进入时一样。

第二,name元素的模板:

代码语言:javascript
复制
<xsl:template match="name">
<xsl:choose>
<xsl:when test="local-name(parent::element())='patent-assignee'">
<patent-assignee>
<xsl:value-of select="."/>
</patent-assignee>
</xsl:when>
<xsl:when test="local-name(parent::element())='patent-assignor'">
<patent-assignor>
<xsl:value-of select="."/>
</patent-assignor>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:template> 

您可以在information studio或recordloader中使用此样式表。要从recordloader调用,请在属性文件中使用以下行:

代码语言:javascript
复制
CONFIGURATION_CLASSNAME=com.marklogic.recordloader.xcc.DelimitedDataConfiguration
CONTENT_FACTORY_CLASSNAME = com.marklogic.recordloader.xcc.XccModuleContentFactory
CONTENT_MODULE_URI = /path/to/module.xqy

然后从module.xqy调用xslt。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10595783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档