1

こんにちは私は以下のxmlを持っています

 <primaryie>
  <content-style font-style="bold">VIRRGIN system 7.204, 7.205</content-style> 
  </primaryie>

以下のxsltを適用することで、番号を選択できます。

<xsl:value-of select="current()/text()"/>

しかし、以下の場合

    <primaryie>
  <content-style font-style="bold">VIRRGIN system</content-style> 
  7.204, 7.205 
  </primaryie>

番号はどのように選択しますか?コンテンツスタイルのxslt:parentを使用するようなものが必要です。

また、両方のxmlが一緒になる場合もあります。両方の場合の番号の選択方法を教えてください。

ありがとう

4

3 に答える 3

1
<xsl:template match="content-style">
  <xsl:value-of select="parent::*/text()"/>
</xsl:template>

または、代わりに

<xsl:template match="content-style">
  <xsl:value-of select="../text()"/>
</xsl:template>
于 2013-03-26T14:01:51.487 に答える
1

使用

<xsl:template match="primaryie/text()">
  <!-- Processing of the two numbers here -->
</xsl:template>

テンプレートが実行用に選択されることを確認するためにxsl:apply-templates、必要なテキストノードを選択するが、それ自体が実行用に選択されたテンプレート内にあるようにすることができます。

<xsl:template match="primaryi">
  <!-- Any necessary processing, including this: -->
  <xsl:apply-templates select="text()"/>
</xsl:template>
于 2013-03-26T14:42:10.997 に答える
0

以下のようなテンプレートデザインを使用すると役立つと思います:

<xsl:template match="primaryie">
    <!-- Do some stuffs here, if needed -->
    <!-- With the node() function you catch elements and text nodes (* just catch elements) -->
    <xsl:apply-templates select="node()"/>
</xsl:template>

<xsl:template match="content-style">
    <!-- Do some stuffs here, if needed -->
    <!-- same way -->
    <xsl:apply-templates select="node()"/>
</xsl:template>

<!-- Here you got the template which handle the text nodes. It's probably better to add the ancestor predicate to limit its usage to the only text nodes we need to analyze ('cause the xslt processor often has some silent calls to the embedded default template <xsl:template match="text()"/> and override it completely could have some spectacular collaterall damages). -->
<xsl:template match="text()[ancestor::primaryie]">
   <!-- Do your strings 'cooking' here -->
</xsl:template>
于 2013-03-26T13:45:41.380 に答える