XSLT;搜索整个xml

时间:2017-09-07 11:25:00

标签: xml xslt xpath

我想在1.0和2.0中使用XSLT查看整个XML。 这个想法是一个跟随,我想从这个xml

得到值1234
<root>
 <data>test</data>
 <root2>
  <data2>testt</data2>
  <data3>1234</data3>
 </root2>
</root>

重点是,每次xml中的值都在不同的位置,具体取决于谁提供XML。在技​​术上是否可以查看特定值的所有XML元素?

谢谢!

1 个答案:

答案 0 :(得分:0)

嗯,这可能不太优雅,但它适用于XPath 1.0:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/" >
        <xsl:value-of select="//*[not(*)][boolean(number(substring(text(), 3, 6)))][translate(substring(text(), 1, 2), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'ZZZZZZZZZZZZZZZZZZZZZZZZZZZ')='ZZ'][string-length(text())=8]/text()"/>
    </xsl:template >
</xsl:stylesheet>

测试数据:

<root>
 <data>test</data>
 <root2>
  <data2>testt</data2>
  <data3>XX345678</data3>
 </root2>
</root>

测试输出:

<?xml version="1.0" encoding="UTF-8"?>XX345678

这里只拍摄了叶子节点,然后我们测试文本是以两个字母开头,以6位数结尾。