我使用XSL读取三个相同的XML文档,除了它们的属性具有不同的值(可能我会阅读许多XML文件).我想计算"results"属性的值为"Passed"或"Failed"的次数为"testName"属性="TestOne"的元素的次数.我使用以下方法实现此目的:
File1.xml
<container>
<build>
<Tests>
<Results>
<Result testName="TestOne" outcome="Passed" ></Result>
<Result testName="TestTwo" outcome="Passed" ></Result>
</Results>
</Tests>
</build>
</container>
Run Code Online (Sandbox Code Playgroud)
File2.xml
<container>
<build>
<Tests>
<Results>
<Result testName="TestOne" outcome="Passed" ></Result>
<Result testName="TestTwo" outcome="Failed" ></Result>
</Results>
</Tests>
</build>
</container>
Run Code Online (Sandbox Code Playgroud)
File3.xml
<container>
<build>
<Tests>
<Results>
<Result testName="TestOne" outcome="Failed" ></Result>
<Result testName="TestTwo" outcome="Failed" ></Result>
</Results>
</Tests>
</build>
</container>
Run Code Online (Sandbox Code Playgroud)
INDEX.XML
<?xml-stylesheet type="text/xsl" href="merge3.xsl"?>
<list>
<entry name="File1.xml" />
<entry name="File2.xml" />
<entry name="File3.xml" />
</list>
Run Code Online (Sandbox Code Playgroud)
Merge2.xsl
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<xsl:for-each select="/list/entry">
<xsl:apply-templates select="document(@name)/container/build/*[local-name()='Tests']" /> …Run Code Online (Sandbox Code Playgroud)