0

xsltプログラミングは初めてです。要件を満たすコードを取得するための支援が必要です。

次のようなxmlファイルがあります

 <Tags>
 <tag>
 <value>abc</value>
 </tag>
 <tag>
 <value>def</value>
  </Tags>

値タグ内のテキストは、着信 xml 要求に存在する特定のタグの値です。

ここで、私が提供したサンプル xml に存在するタグのリストを調べて、着信 xml にタグがあるかどうかを検索する xslt コードが必要です。タグがあれば、そのタグの値を変数に保存したいと思います。

ありがとう

4

1 に答える 1

0

XML スニペットを有効な XML にして、ここに保存しました: http://stamm-wilbrandt.de/en/forum/Tags.xml

以下のスタイルシートは、文字列値 (現在のノードの「name()」) とノードセット (Tags.xml 内のすべての <value>) の間の XPath 比較の力を利用します。

$ coproc2 Tags.xsl <(echo '<d><abc/></d>') http://dp1-l3.boeblingen.de.ibm.com:2223
abc
$ 
$ cat Tags.xsl 
<!DOCTYPE xsl:stylesheet [ 
  <!ENTITY url "http://stamm-wilbrandt.de/en/forum/Tags.xml"> 
  <!ENTITY LF "<xsl:text>&#10;</xsl:text>">
]>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
  <xsl:output omit-xml-declaration="yes" />

  <xsl:variable name="tags" select="document('&url;')" />

  <xsl:template match="/">
    <xsl:for-each select="//*[name()=$tags/Tags/tag/value]">
      <xsl:value-of select="name()" />&LF;
    </xsl:for-each>
  </xsl:template>

</xsl:stylesheet>
$ 
于 2015-12-13T11:39:48.227 に答える