xslt地图 [英] xslt map

查看:55
本文介绍了xslt地图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试下面的映射,

I am trying to do below mapping,

来源dataformat

source dataformat

< ns0:Root xmlns:ns0 =" http://schemas.microsoft.com/BizTalk/2003/aggschema">

  ; < InputMessagePart_0>

  &NBSP; < ns1:Root xmlns:ns1 =" http://TestMap.bb_in">

  &NBSP; &NBSP; < value> value_0< / value>

< value> value1< / value>

< value> value2< / value>

< value> value3< / value>

< value> value4< / value>

  &NBSP; < / ns1:Root>

  < / InputMessagePart_0>

  < InputMessagePart_1>

  &NBSP; < ns2:sp_in xmlns:ns2 =" http://TestMap.sp_in">

  &NBSP; &NBSP; < id> 111< / id>

  &NBSP; &NBSP; < name> vvv< / name>

  &NBSP; &NBSP; < class> tenth< / class>

  &NBSP; &NBSP; < school> schoolzphs< / school>

  &NBSP; < / ns2:sp_in>

  < / InputMessagePart_1>

< / ns0:Root>

<ns0:Root xmlns:ns0="http://schemas.microsoft.com/BizTalk/2003/aggschema">
  <InputMessagePart_0>
    <ns1:Root xmlns:ns1="http://TestMap.bb_in">
      <value>value_0</value>
<value>value1</value>
<value>value2</value>
<value>value3</value>
<value>value4</value>
    </ns1:Root>
  </InputMessagePart_0>
  <InputMessagePart_1>
    <ns2:sp_in xmlns:ns2="http://TestMap.sp_in">
      <id>111</id>
      <name>vvv</name>
      <class>tenth</class>
      <school>schoolzphs</school>
    </ns2:sp_in>
  </InputMessagePart_1>
</ns0:Root>

映射:见下面的截图

目的地结果:

< ns0:Root

xmlns:ns0 =" http://TestMap.output">

< In> 111< / In>

<> vvv< / In>

< In> tenth< / In>

<> schoolzphs< / In>

< In> value_0< / In>

< In> 111< / In>

<> vvv< / In>

<>< tenth< / In>

<> schoolzphs< / In>

< ;在& gt; value1< / In>

<> 111< / In>

<> vvv< / In>

<> ;第十< / In>

<> schoolzphs< / In>

< In> value2< / In>

< In> 111< / In>

< In> vvv< / In>

< In> tenth< / In>

<> schoolzphs< ; / In>

< In> value3< / In>

< In> 111< / In>

<> vvv< /在>

< In> tenth< / In>

<> schoolzphs< / In>

<> ; value4< / In>

< / ns0:Root>

<ns0:Root
xmlns:ns0="http://TestMap.output">
<In>111</In>
<In>vvv</In>
<In>tenth</In>
<In>schoolzphs</In>
<In>value_0</In>
<In>111</In>
<In>vvv</In>
<In>tenth</In>
<In>schoolzphs</In>
<In>value1</In>
<In>111</In>
<In>vvv</In>
<In>tenth</In>
<In>schoolzphs</In>
<In>value2</In>
<In>111</In>
<In>vvv</In>
<In>tenth</In>
<In>schoolzphs</In>
<In>value3</In>
<In>111</In>
<In>vvv</In>
<In>tenth</In>
<In>schoolzphs</In>
<In>value4</In>
</ns0:Root>

预期结果应为:

< ns0:Root

xmlns :ns0 =" http://TestMap.output">

<> 111< / In>

< In> vvv< / In>

< In>十分< / In>

<> schoolzphs< / In>

< In> value_0< / In>

< In> value_1< / In>

< In> value_2< / In>


< In> value_3< / In>

< /跨度>& lt;> value_4< / In>
$
< / ns0:Root>

<ns0:Root
xmlns:ns0="http://TestMap.output">
<In>111</In>
<In>vvv</In>
<In>tenth</In>
<In>schoolzphs</In>
<In>value_0</In>
<In>value_1</In>
<In>value_2</In>
<In>value_3</In>
<In>value_4</In>
</ns0:Root>

此处" value" ;来自源和"In"的元素。来自目的地的元素是无界的。(xml数组类型的字段)

here "value" element from source and "In" element from destination is unbounded.(xml array kind of field)




请一些人帮我使用xslt或任何解决方案。

please some body help me with xslt or any solution.

问候,vishal

推荐答案

试试这个xslt:

Try this xslt:

<?xml version="1.0" encoding="utf-16"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:source="http://schemas.microsoft.com/BizTalk/2003/aggschema" xmlns:ns0="http://TestMap.output" xmlns:ns1="http://TestMap.bb_in" xmlns:ns2="http://TestMap.sp_in" version="1.0" exclude-result-prefixes="source">
  <xsl:template match="source:Root">
    <ns0:Root>
      <xsl:variable name="part0" select="InputMessagePart_0/ns1:Root" />
      <xsl:variable name="part1" select="InputMessagePart_1/ns2:sp_in" />
      <In>
        <xsl:value-of select="


part1 / id" />
< / In>
< In>
< xsl:value-of select ="
part1/id" /> </In> <In> <xsl:value-of select="


part1 / name" />
< / In>
< In>
< xsl:value-of select ="
part1/name" /> </In> <In> <xsl:value-of select="


这篇关于xslt地图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆