首页 > 解决方案 > 如何用 xslt 样式表替换 XML 元素值?

问题描述

我必须更换每个

CalculationItemPointCalculationItem/<CalculationSource>**xxxxxx**</CalculationSource>

<Name>元素的值 位于Sources/CalculationSource/<ID>**xxxxxx**</>--> where ID==CalculationSource

我尝试了很多但从未得到这个:CalculationItemPointCalculationItem/<CalculationSource>Bauplan01</CalculationSource>

这是我所做的链接:http: //xsltransform.net/aUSW7n/8

 <Project>
    <ProjectChildPosition>
      <Number>1</Number>
      <Name>Pos 1.1</Name>
      <CalculationItems>
        <CalculationItemPointCalculationItem>
          <Name>(R)Bodenbeschichtung</Name>
          <CalculationSource>f3ba3b76</CalculationSource>
        </CalculationItem>
      </CalculationItems>
      <Value>10.018</Value>
      <Unit>m²</Unit>
    </ProjectChild>
  <Sources>
    <CalculationSource>
      <Id>f3ba3b76</Id>
      <Name>Bauplan01</Name>
    </CalculationSource>
  </Sources>
  <Sources>
    <CalculationSource>
      <Id>sdfese</Id>
      <Name>Bauplan02</Name>
    </CalculationSource>
  </Sources>
  <Name>POS test Projekt </Name>
</Project>

标签: c#xmlxsltreplacetransform

解决方案


我猜你想用钥匙

   <xsl:key name="source" match="Sources/CalculationSource" use="Id"/>


<xsl:template match="CalculationItemPointCalculationItem/CalculationSource">
    <xsl:copy>
        <xsl:value-of select="key('source', .)/Name"/>
    </xsl:copy>
</xsl:template>

推荐阅读