0

我是 xslt 编程的新手。我需要帮助以获取满足我要求的一段代码,

我有一个 xml 文件,就像

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

值标签内的文本是某些标签的值,这些标签将出现在传入的 xml 请求中。

现在,我需要一个 xslt 代码,它可以通过查看我提供的示例 xml 中存在的标签列表来搜索传入的 xml 是否具有任何标签。如果标签在那里,我想将该标签的值保存在变量中。

谢谢

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