2011-08-01 4 views
8

"Heading" ile başlayan öznitelik değerine sahip olan xml öğesinin eşleşmesini bulduğumda kendi xsl şablonumu aramak istiyorum. Bu sorguyu Xslt dosyasında yaparım. > W - pStyle: val sadece "Başlık" ile başlayan meselaxml öğesini kendi özellik değerine göre seçmek xslt'de "Heading" ile başlar?

:

<w:p> 
    <w:pPr> 
    <w:pStyle w:val="Heading2"/> 
    </w:pPr> 
</w:p> 

<w:p> 
    <w:pPr> 
    <w:pStyle w:val="Heading1"/> 
    </w:pPr> 
</w:p> 

<w:p> 
    <w:pPr> 
    <w:pStyle w:val="Heading2"/> 
    </w:pPr> 
</w:p> 

<w:p> 
    <w:pPr> 
    <w:pStyle w:val="ListParagraph"/> 
    </w:pPr> 
</w:p> 

<w:p> 
    <w:pPr> 
    <w:pStyle w:val="commentText"/> 
    </w:pPr> 
</w:p> 

Yani, w o sorguyu yapmak istiyorum.

XPath dize işlevi yararlanarak

cevap

13

Bunu elde edebilirsiniz ... bana bu konuda çıkmak Lütfen Yardım Bu durum basit w maçları

<xsl:template match="w:pStyle[starts-with(@w:val, 'Heading')]"> 

başlar: pStylew: val özniteliklerinin Başlığı başlığında bulunduğu düğümler. Daha sonra kendi kodunuzu bu şablona koyabilirsiniz. İşte

tüm mathcing w atmak olur, sen diyor koduna sahip ekledin sürece XSLT kimlik kullanmak nasıl bir örnek, yukarıdaki XSLT

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:w="http://mynamespace.com"> 
    <xsl:output method="xml" indent="yes"/> 

    <xsl:template match="w:pStyle[starts-with(@w:val, 'Heading')]"> 
     <!-- Your code here --> 
    </xsl:template> 

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

dönüşümü geçerli: pStyle XML'den öğe.