【问题标题】:How to replace XML elements value with xslt stylesheet?如何用 xslt 样式表替换 XML 元素值?
【发布时间】:2021-05-06 03:36:46
【问题描述】:

我必须更换每个

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

Sources/CalculationSource/&lt;ID&gt;**xxxxxx**&lt;/&gt; 下的元素值为 &lt;Name&gt;-->其中 ID==CalculationSource

我尝试了很多,但从未得到这个:CalculationItemPointCalculationItem/&lt;CalculationSource&gt;Bauplan01&lt;/CalculationSource&gt;

这是我所做的链接: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# xml xslt replace transform


    【解决方案1】:

    我猜你想用钥匙

       <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>
    

    【讨论】:

    • 没错!非常感谢!我对 select="xxx" 的正确语法有疑问。我见过的每个例子都是用@id 属性完成的
    猜你喜欢
    • 2011-04-06
    • 1970-01-01
    • 2014-07-26
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-15
    相关资源
    最近更新 更多