2013-06-20 4 views
0

У меня есть XML-файл, как это -Синтаксический вложенные теги через XSLT

<item> 
    <item> 
     <tag>value</tag> 
     <tag2>value</tag2> 
    </item> 
</item> 

Я хотел бы, чтобы извлечь из внутреннего тега, так это выглядит, как это -

<item> 
    <tag>value</tag> 
    <tag2>value</tag2> 
</item> 

Возможно ли это через XSLT?

Внешние <item> и </item> гарантируют, что это первая и последняя строки XML-документа, если это поможет.

ответ

2

Если вы хотите извлечь только элементы листа (те, которые не имеют дочерние элементы своей собственной), то что-то же просто, как

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
    <xsl:template match="/*"> 
    <xsl:copy> 
     <xsl:copy-of select="descendant::*[not(*)]" /> 
    </xsl:copy> 
    </xsl:template> 
</xsl:stylesheet> 

будет делать эту работу.

1
<xsl:template match="/"> 
    <xsl:copy-of select="//item[not(item)]"/> 
</xsl:template> 

извлекает те item элементов, которые не содержат другие item элементов.