0

私の質問はthis oneに似ており、著者は一連の要素の最小属性を見つける方法を尋ねています。私は xpath の初心者で、その答えを取得して XSLT に追加するのに苦労しています。プランの最低価格 (以下を参照) を見つけ、その最低価格を含むサブディビジョンに属性を追加する必要があります。

次の XML スニペットがあります。

<Subdivision Status="Active">
  <SubdivisionName>Chesla</SubdivisionName>
  <Plan Type="SingleFamily">
    <PlanNumber>555</PlanNumber>
    <PlanName>Pinewood</PlanName>
    <BasePrice>200500.0000</BasePrice>
  </Plan>
  <Plan Type="MultiFamily">
    <PlanNumber>444</PlanNumber>
    <PlanName>Westfield</PlanName>
    <BasePrice>270000.0000</BasePrice>
  </Plan>

注: XML ドキュメントには複数のサブディビジョンが存在する可能性があります。簡潔にするために、例で1つだけ示しています。

サブディビジョンの兄弟であるすべてのプランの最小 BasePrice を含む Subdivision 要素に PriceLow 属性が追加されている点を除いて、最終的な出力は入力と同じです。

<Subdivision Status="Active" PriceLow="200500.00"> <==== ADDED!!!
  <SubdivisionName>Chesla</SubdivisionName>
  <Plan Type="SingleFamily">
    <PlanNumber>555</PlanNumber>
    <PlanName>Pinewood</PlanName>
    <BasePrice>200500.00</BasePrice>
  </Plan>
  <Plan Type="MultiFamily">
    <PlanNumber>444</PlanNumber>
    <PlanName>Westfield</PlanName>
    <BasePrice>270000.00</BasePrice>
  </Plan>

私の不完全な xsl ファイルは次のようになります。

<xsl:output omit-xml-declaration="yes" indent="yes"/>

<xsl:template match="node()|@*">
    <xsl:copy>
        <xsl:apply-templates select="node()|@*"/>
    </xsl:copy>
</xsl:template>

<xsl:template match="Subdivision">
   ... something goes here ...
</xsl:template>

この XSLT ファイルを完成させるのを手伝ってくれる人はいますか? XSLT に関する本を何冊か読んでいますが、それまでの間、このプロジェクトをすぐに完了する必要があります。

乾杯、ブレット

4

1 に答える 1