2016-03-24 55 views
0

我已經XML文件重複的節點根元素添加到重複節點在XML文件中,但沒有根元素,如下所示:使用XSL

<my-element>AAA</my-element> 
<my-element>BBB</my-element> 
<my-element>CCC</my-element> 

我想生成根爲以下XML:

<my-root> 
    <my-element>AAA</my-element> 
    <my-element>BBB</my-element> 
    <my-element>CCC</my-element> 
</my-root> 

我輸入以下代碼:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 
    <my-root> 
     <xsl:for-each select="*"> 
      <xsl:copy-of select="."/> 
     </xsl:for-each> 
    </my-root> 
</xsl:stylesheet> 

但我收到的錯誤,因爲XML不formatte d正確:

The markup in the document following the root element must be well-formed. 

我知道Input應該有根元素。但有沒有辦法根據XSL爲沒有root的重複元素設置根元素?

回答

0

您的輸入不是格式良好的XML文檔,這就是您遇到此錯誤的原因。但是,它可以被看作是一個節點集。

取決於所使用的XSLT處理器,您可能因此能夠以某種方式將節點集作爲參數傳遞,但是沒有「標準方式」來實現這一點。

但是,將輸入文檔包裝到某個元素並在之後進行處理可能比較簡單,例如, concat <root> +文件內容+ </root>轉換爲臨時文件並將其用作轉換的輸入。