首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个重复字段上的MarkLogic TDE xpath

多个重复字段上的MarkLogic TDE xpath
EN

Stack Overflow用户
提问于 2018-05-31 18:27:12
回答 1查看 129关注 0票数 2

我需要使用TDE创建模板。最终,我希望能够使用我的视图查看数据。我看到的问题是因为我的xml中有多个重复的元素。谁可以请帮助我如何创建这样的模板。下面是xml的示例:

代码语言:javascript
复制
<entity>
  <id>id-2</id>
  <name>pub-2</name>
  <series name="s-21">s-21</series>
  <series name="s-22">s-22</series>  
  <series name="s-23">s-23</series>  
  <location>loc-1</location>
  <location>loc-2</location>    
</entity>

我希望看到两个可重复字段的组合的6行,即在本例中为series和location。任何帮助都将是非常值得感谢的。

EN

回答 1

Stack Overflow用户

发布于 2018-05-31 21:49:25

找到了一种使用嵌套模板的方法。以下是一个示例模板:

代码语言:javascript
复制
<template xmlns="http://marklogic.com/xdmp/tde">
  <context>entity</context>
  <rows>
    <row>
      <schema-name>main</schema-name>
      <view-name>root</view-name>
      <view-layout>sparse</view-layout>
      <columns>
        <column>
          <name>id</name>
          <scalar-type>string</scalar-type>
          <val>id</val>
        </column>
        <column>
          <name>name</name>
          <scalar-type>string</scalar-type>
          <val>name</val>
        </column>        
    </columns>
    </row>
  </rows>

  <templates>
    <template>
      <context>series</context>
      <rows>
        <row>
          <schema-name>main</schema-name>
          <view-name>series</view-name>
          <view-layout>sparse</view-layout>
          <columns>
            <column>
              <name>idParent</name>
              <scalar-type>string</scalar-type>
              <val>../id</val>              
            </column>

            <column>
              <name>series</name>
              <scalar-type>string</scalar-type>
              <val>fn:string(.)</val>
              <nullable>true</nullable>
            </column>
          </columns>
        </row>
      </rows>
    </template>
    <template>
      <context>location</context>
      <rows>
        <row>
          <schema-name>main</schema-name>
          <view-name>location</view-name>
          <view-layout>sparse</view-layout>
          <columns> 
            <column>
              <name>idParentlocation</name>
              <scalar-type>string</scalar-type>
              <val>../id</val>              
            </column>
            <column>
              <name>name</name>
              <scalar-type>string</scalar-type>
              <val>fn:string(.)</val>
              <nullable>true</nullable>
            </column>
          </columns>
        </row>
      </rows>
    </template>
  </templates>  
</template>

下面是sql查询:

代码语言:javascript
复制
select * from main.root 
join main.location on main.location.idParentlocation = main.root.id
join main.series on main.series.idParent = main.root.id
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50622119

复制
相关文章

相似问题

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