tôi có nhiều tệp Xml, trong một List<File>
. Những gì tôi muốn là để biến đổi những xml vào một Xml với một XSL:Viết ở cuối xml
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="testsuites">
<xsl:call-template name="summary"/>
</xsl:template>
<xsl:template name="summary">
<xsl:variable name="testCount" select="sum(testsuite/@tests)"/>
<xsl:variable name="errorCount" select="sum(testsuite/@errors)"/>
<xsl:variable name="failureCount" select="sum(testsuite/@failures)"/>
<xsl:variable name="timeCount" select="sum(testsuite/@time)"/>
<xsl:variable name="successRate" select="($testCount - $failureCount - $errorCount) div $testCount"/>
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="$failureCount > 0">Failure</xsl:when>
<xsl:when test="$errorCount > 0">Error</xsl:when>
</xsl:choose>
</xsl:attribute>
<Build>
<NombreTest><xsl:value-of select="$testCount"/></NombreTest>
<Failures><xsl:value-of select="$failureCount"/></Failures>
<Erreurs><xsl:value-of select="$errorCount"/></Erreurs>
<PercentSucces><xsl:call-template name="display-percent">
<xsl:with-param name="value" select="$successRate"/>
</xsl:call-template></PercentSucces>
<ExecTime><xsl:call-template name="display-time">
<xsl:with-param name="value" select="$timeCount"/>
</xsl:call-template> </ExecTime>
</Build>
</xsl:template>
<xsl:template match="failure">
<xsl:call-template name="display-failures"/>
</xsl:template>
<xsl:template match="error">
<xsl:call-template name="display-failures"/>
</xsl:template>
<xsl:template name="display-time">
<xsl:param name="value"/>
<xsl:value-of select="format-number($value,'0.000')"/>
</xsl:template>
<xsl:template name="display-percent">
<xsl:param name="value"/>
<xsl:value-of select="format-number($value,'0.00%')"/>
</xsl:template>
<xsl:template name="display-failures">
<xsl:choose>
<xsl:when test="not(@message)">N/A</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@message"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Vấn đề của tôi là khi tôi đang lặp và áp dụng các thay đổi với một TransformerFactory
nó luôn luôn xóa XML đầu ra. Thay vào đó, tôi muốn chỉnh sửa đầu ra.
Tôi biết rằng tôi có thể làm điều đó trong java với một XML tạm thời và sau khi hợp nhất nó, nhưng tôi gần như chắc chắn rằng nó có thể trong XSL?
Cảm ơn vì đã giúp
Câu hỏi của bạn không rõ ràng. Bạn có muốn chạy chuyển đổi của mình dựa trên một số tài liệu đầu vào không? Hoặc bạn có muốn truy cập một số tài liệu đầu vào từ một chuyển đổi không? –
tôi muốn chạy phép chuyển đổi cho nhiều (cùng một cấu trúc, cùng một biểu định kiểu) xml và đặt kết quả theo một xml – Theo
Câu hỏi hay, +1. Xem câu trả lời của tôi để giải thích và một giải pháp điển hình. Ngoài ra, bạn cần phải tìm hiểu từ tài liệu về bộ xử lý XSLT của bạn cách chuyển các tham số cho phép biến đổi. –