2013-04-03 5 views
2

Довольно простой вопрос. Не нашел ответа на этот вопрос.XSLT - удалить все атрибуты

Хотелось бы видеть XSLT 1.0 без оси атрибута и, если возможно, других, (я использую lxml lib python, который на самом деле не догоняет этот материал).

ответ

8

Ваше решение должно работать без проблем, но есть еще более простой способ - просто использовать шаблон идентичности, которая не включает в себя атрибуты:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output omit-xml-declaration="yes" indent="yes"/> 
    <xsl:strip-space elements="*"/> 

    <xsl:template match="node()"> 
    <xsl:copy> 
     <xsl:apply-templates /> 
    </xsl:copy> 
    </xsl:template> 
</xsl:stylesheet> 
+0

Прохладный! Кажется очевидным, когда вы это видите – lajarre

0

Я сам это понял, написав вопрос. Тем не менее его размещения, так как он никогда нигде я нашел:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output omit-xml-declaration="yes" indent="yes"/> 
    <xsl:strip-space elements="*"/> 

    <xsl:template match="node()|@*" name="identity"> 
    <xsl:copy> 
     <xsl:apply-templates select="node()|@*"/> 
    </xsl:copy> 
    </xsl:template> 

    <xsl:template match="@*"/> 

</xsl:stylesheet> 

В ожидании других ответов/комментариев в случае, если она не совершенна, как это.

+0

Хотя это, конечно, работает, @ ответ JLRishe является проще. – ABach

Смежные вопросы