小编use*_*805的帖子

如何在使用XSL合并后处理来自多个XML文件的所有数据

我使用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)

xml xslt

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

xml ×1

xslt ×1