2016-10-24 4 views
1

私はpython/lxmlを使用して、ソースxmlをターゲットxml形式に変換しています。私はルート( '/')以外の要素にテンプレートをマッチさせようとするとXLSTParseErrorを取得し続けますが、何が間違っているのか分かりません - そのネームスペースは関連しています...ソースXMLからアクセスしようとしています要素に含まれる。任意のアイデアを修正する方法やlxmlをより詳細なエラーメッセージを出力する方法を教えてください。lxml throwing xslt解析エラー - テンプレート以外のルートに一致するテンプレートがありません

ソースXML宣言を持っています

<?xml version="1.0" encoding="utf-8"?> 
 
    <BoligListe xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:oio:lbf:1.0.0"> 
 
\t  <BoligStruktur>...</BoligStruktur> 
 
\t  <BoligStruktur>...</BoligStruktur> 
 
     ...

<?xml version="1.0" encoding="UTF-8"?> 
 
    <dataroot generated="2016-10-24T09:16:37" xsi:noNamespaceSchemaLocation="BOLIG_XML.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:od="urn:schemas-microsoft-com:officedata"> 
 
\t <BOLIG_XML>...</BOLIG_XML> 
 
\t <BOLIG_XML>...</BOLIG_XML>

... 

ターゲットXML宣言を持っています

XSLTは現在、次のようになります。

xslt_tree = etree.XML('''\ 
 
     <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
 
     <xsl:template match="/"> 
 
\t   <BoligListe xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:oio:lbf:1.0.0"> 
 
      <xsl:template match="BOLIG_XML"> 
 
        <BoligStruktur>hello world</BoligStruktur> 
 
       </xsl:template> 
 
      </BoligListe> 
 
     </xsl:template> 
 
     </xsl:stylesheet>''' 
 
    )

答えて

0

xsl:template要素は、スタイルシートのルート要素のトップレベルの要素である必要があり、あなたが巣テンプレートは、あなたがしようとするように見えることができないようあなたのXSLTコードで行います。次に、xsl:apply-templatesを使用して、テンプレートと一致する子要素を処理します。希望すると思います。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="/"> 
     <BoligListe xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:oio:lbf:1.0.0"> 
      <xsl:apply-templates/> 
     </BoligListe> 
    </xsl:template> 
     <xsl:template match="BOLIG_XML"> 
       <BoligStruktur>hello world</BoligStruktur> 
      </xsl:template> 
    </xsl:stylesheet> 
関連する問題