0

現在、次のコードを使用して XML-XSLT 変換を行っています。

from lxml import etree

xmlRoot = etree.parse('path/abc.xml')
xslRoot = etree.parse('path/abc.xsl')
transform = etree.XSLT(xslRoot)
newdom = transform(xmlRoot)
print(etree.tostring(newdom, pretty_print=True))

次のコードは問題なく動作root elementしますが、XML コンテンツ全体ではなく as 出力のみを提供します。同じために変換を実行すると、変換を実行してもXML and XSL file using Altova問題なく動作します。XML全体を印刷するための構文が異なっていますか、それともここで見つけたエラーですか?

XML コンテンツ :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
    <slide name="slide7.xml" nav_lvl_1="Solutions" nav_lvl_2="Value Map" page_number="7">
        <title>Retail Value Map</title>
        <Subheadline>Retail </Subheadline>
    </slide>
</root>

XSL コンテンツ:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output encoding="UTF-8" indent="yes" method="xml" standalone="yes" version="1.0"/>
    <xsl:template match="/">
        <p:sld xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main">
            <xsl:for-each select="root/slide">
                <xsl:choose>
                    <xsl:when test="@nav_lvl_1='Solutions'">
                        <xsl:if test="@nav_lvl_2='Value Map'">
                             <p:txBody>

                                    <a:p>
                                        <a:r>
                                            <a:rPr lang="en-US" dirty="0" smtClean="0"/>
                                            <a:t>
                                               <xsl:value-of select="title"/>
                                            </a:t>
                                        </a:r>
                                        <a:endParaRPr lang="en-US" dirty="0"/>
                                    </a:p>
                            </p:txBody>
                      </xsl:if>
                </xsl:when>
            </xsl:choose>
        </xsl:for-each>
    </p:sld>
</xsl:template>

現在の出力:

<p:sld xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main"/>
4

0 に答える 0