XSLT

2016-04-11 35 views
1

Ben sadece belirli bir regex ihtiva unsurları tutacak basit XSLT istediğiniz regex eşleşmeyen öğeleri kaldırmak a ":XSLT

<example> 
    <abc>text</abc> 
    <ab>text</ab> 
</example> 
+0

Bu konuda tam olarak nerede sorun yaşıyorsunuz? https://www.w3.org/TR/xpath-functions/#func-matches –

+0

Merhaba, xslt için yeni ve sadece aynı xml döndürecek basit bir betik istiyorum, ancak eşleşen olmayan tüm öğeleri kaldırır düzenli bir ifade – bdanger

cevap

2

Başlat dönüşümü ve ismi elemanları senin regex eşleşmeyen bastıran bir şablon eklemek kimlikle:

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

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

    <xsl:template match="*[not(matches(name(), 'a'))]"/> 

</xsl:stylesheet> 

Açıklama: Varsayılan olarak, kimlik dönüşümü her şeyi olduğu gibi çıktıya kopyalar. Bu varsayılan davranışı, adında "a" olmayan öğelerle eşleşen ve hiçbir şey yapmayan basit bir şablon yazarak geçersiz kılın, böylece bu tür öğelerin çıktı belgesinde görünmesini engeller.