0

这是我第一次使用 XSLT 文件。我必须使用 XSL 文件更改报告,并且遇到以下问题:

  1. 我有 3 个变量必须匹配才能识别我正确的 XML 标记
  2. 这些变量之一在子子标签中定义
  3. 我的结果位于第一个子标签中

要选择正确的属性,我使用以下 XSL 代码:

<xsl:for-each select="MSMResults/MSMVarContribs/Contrib">
  <xsl:variable name="PrtAsmType"><xsl:value-of select="@PrtAsmType"/></xsl:variable> 
  <xsl:variable name="CadName"><xsl:value-of select="@PrtAsmCadName"/></xsl:variable> 
  <xsl:variable name="ContribType"><xsl:value-of select="@Type"/></xsl:variable> 
  <xsl:variable name="ID"><xsl:value-of select="@ID"/></xsl:variable>
  <xsl:value-of select="/CETOLReport/PrtAsm[@Type=$PrtAsmType and @CadName=$CadName and /Feature/SizeDimension/Variable/@ID=$ID]//SizeDimension/@Note"/>

这是 XML 文件(已缩短):

<CETOLReport>   
<PrtAsm Type="PART" CadName="PRT0001" Name="PRT0001">
  <VariationRule>
  <Alerts Count="0"/>
  <Feature>
  ...
  </Feature>
  ...
  <Feature Note="">
     <Alerts Count="0"/>
     <SizeDimension Note="PRT001&#xa;dim.# 01">
        <Tolerance Lower="0.1" Upper="0.2"/>
        <VariationRule ControlSkew="TRUE"/>
        ...
        <Variable Note="" Nominal="9" ID="12">
           <Distribution Mean="9.149999999999999"/>
           <Alerts Count="0"/>
        </Variable>
     </SizeDimension>
     <Dimension>
     ...
     </Dimension>
     <Dimension>
     ...
     </Dimension>
  </Feature>
  <Feature>
  ...
  </Feature>
</PrtAsm>
</CETOLReport>

总结:

我必须匹配

  • Type中的属性<PrtAsm>
  • CadName中的属性<PrtAsm>
  • ID中的属性<PrtAsm/Feature/SizeDimension/Variable>

作为我想要的输出

  • Note中的属性<PrtAsm/Feature/SizeDimension>

我必须改变什么 <xsl:value-of select="/CETOLReport/PrtAsm[@Type=$PrtAsmType and @CadName=$CadName and /Feature/SizeDimension/Variable/@ID=$ID]//SizeDimension/@Note"/>才能得到正确的答案?

4

2 回答 2

0

我会尝试:

<xsl:value-of select="/CETOLReport/PrtAsm[@Type=$PrtAsmType and @CadName=$CadName and Feature/SizeDimension/Variable/@ID=$ID]/Feature/SizeDimension[1]/@Note"/>
于 2016-06-02T11:49:30.423 回答
0

尝试这个....

<xsl:value-of select="/CETOLReport
                      /PrtAsm[@Type=$PrtAsmType and @CadName=$CadName]
                      /Feature/SizeDimension[Variable/@ID=$ID]/@Note"/>
于 2016-06-02T13:05:58.073 回答