小编Tyc*_*cho的帖子

XSLT预先将节点重复为平面

我有一个XML模式,我需要从中提取值,但我没有太多运气.

源模式是:

<Reading>
   <State>
      <StateValues>
         <Name>
         <Value>
      </StateValues>
   </State>
<Reading>
Run Code Online (Sandbox Code Playgroud)

XML的一个例子是:

<Reading>
   <State>
      <StateValues>
         <Name>Reading1</Name>
         <Value>1234</Value>
      </StateValues>
      <StateValues>
         <Name>Reading2</Name>
         <Value>2345</Value>
      </StateValues>
   </State>
   <State>
      <StateValues>
         <Name>Reading3</Name>
         <Value>4321</Value>
      </StateValues>
   </State>
<Reading>
Run Code Online (Sandbox Code Playgroud)

我需要一个结果:

<Readings>
  <Reading1>1234</Reading1>
  <Reading2>2345</Reading2>
  <Reading3>4321</Reading3>
</Readings>
Run Code Online (Sandbox Code Playgroud)

我无法控制模式.

我一直在试图用一个xsl:foreachxsl:if该检查的名字,但我刚刚得到的第一个值重复3次.有小费吗?我一直试图解决这个问题2天,我不是XSLT专家......

谢谢.编辑:抱歉没有发布我的XSLT.我曾尝试过多个版本,并认为它不会有用.这里是:

大段引用

<xsl:element name="ns0:Readings">
   <xsl:element name="ns0:Current">
         <xsl:for-each select="/*[local-name()='gatewayInterface' and namespace-uri()='http://biztalk.gateway.com']/*[local-name()='Reading' and namespace-uri()='http://biztalk.gateway.com']/*[local-name()='State' and namespace-uri()='http://biztalk.gateway.com']/*[local-name()='StateValues' and namespace-uri()='http://biztalk.gateway.com']">               
            <xsl:choose>
               <xsl:when test="Name='TOTAL'">
            <xsl:element name="ns0:Total">
                <xsl:value-of select="/*[local-name()='gatewayInterface' and namespace-uri()='http://biztalk.gateway.com']/*[local-name()='Reading' and namespace-uri()='http://biztalk.gateway.com']/*[local-name()='State' and namespace-uri()='http://biztalk.gateway.com']/*[local-name()='StateValues' and namespace-uri()='http://biztalk.gateway.com']/*[local-name()='Name' and namespace-uri()='http://biztalk.gateway.com']/text()='Total'" />
            </xsl:element>
           </xsl:when>
        </xsl:choose>
        <xsl:choose>
           <xsl:when …
Run Code Online (Sandbox Code Playgroud)

xslt biztalk

2
推荐指数
1
解决办法
1750
查看次数

标签 统计

biztalk ×1

xslt ×1