2010-11-02 5 views
5

में टिप्पणियां टेक्स्ट जोड़ना मैं एक्सएसएलटी और एक्सएमएल का उपयोग कर रहा हूं।एक्सएसएलटी का उपयोग कर एक्सएमएल से टिप्पणियां कैसे पढ़ें और तत्व

मुझे मेरे साथ एक्सएमएल नीचे मिला है।

<?xml version="1.0" encoding="UTF-8"?> 
<mappings> 
    <!-- News mapping --> 
    <mapping old="mbp" new="/SessionHandler.aspx?pageurl=/BP.aspx&amp;pub=/english&amp;section=IBE&amp;j=f"/> 
    <mapping old="about/news" new="about/news/news.aspx"/> 
    <!-- CUGO's--> 
    <mapping old="/nhs" new="/cugo.aspx?promoCode=UKNHS01&amp;pub=/uk/english"/> 
    <mapping old="/hk/ukstudentfare" new="/cugo.aspx?promoCode=HKSTU10&amp;pub=/hk/Chinese"/> 
    <!-- Reserved below vanity URL's --> 
    <mapping old="/kgfmastercard" new=""/> 
    <mapping old="/mastercard" new=""/> 
    <!-- Other vanity URL's--> 
    <mapping old="/destinationbriefs" new="http://www.ekgroup.com/destinationbriefs"/> 
    <mapping old="/win" new="/ch/german/destinations_offers/win_two_tickets_on_A380.aspx"/> 
    <!--FIFA Fan Fest--> 
    <mapping old="/romefanfest" new="/it/italian/destinations_offers/rome_international_fifa_fan_fest.aspx"/> 
    <mapping old="/parisfanfest" new="/fr/french/destinations_offers/paris_international_fifa_fan_fest.aspx"/> 
</mappings> 

नीचे xslt मैं

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" exclude-result-prefixes="xsl fo"> 
    <xsl:output method="xml" indent="yes" /> 
    <xsl:template match="/"> 
    <xsl:for-each select="mappings/mapping"> 
     <VanityUrl> 
     <old> 
      <xsl:value-of select="@old" /> 
     </old> 
     <new> 
      <xsl:value-of select="@new" /> 
     </new> 
     <dateAdded>2010-05-03T14:45:00</dateAdded> 
     <xsl:if test="@new = ''"> 
      <NotLive>Yes</NotLive> 
     </xsl:if> 
     <xsl:if test="preceding-sibling::comment()"> 
      <comments> 
      <xsl:value-of select="preceding-sibling::comment()" /> 
      </comments> 
     </xsl:if> 
     </VanityUrl> 
    </xsl:for-each> 
    </xsl:template> 
</xsl:stylesheet> 

का उपयोग कर रहा है अब मैं क्या परिणाम प्राप्त करने के लिए नीचे दिए गए की तरह कोशिश कर रहा हूँ:

<VanityUrl> 
     <old>/mbp</old> 
     <new>/SessionHandler.aspx?pageurl=/BP.aspx&amp;pub=/english&amp;section=IBE&amp;j=f</new> 
     <dateAdded>2010-05-03T14:45:00 </dateAdded> 
     <comment>News mapping</comments>   
</VanityUrl> 
<VanityUrl> 
     <old>about/news</old> 
     <new>about/news/news.aspx</new> 
     <dateAdded>2010-05-03T14:45:00 </dateAdded> 
     <comment>News mapping</comments>   
</VanityUrl> 
<VanityUrl> 
     <old>/nhs</old> 
     <new>/cugo.aspx?promoCode=UKNHS01&amp;pub=/uk/english</new> 
     <dateAdded>2010-05-03T14:45:00 </dateAdded> 
     <comment>CUGO's</comments>  
</VanityUrl> 
<VanityUrl> 
     <old>/hk/ukstudentfare</old> 
     <new>/cugo.aspx?promoCode=HKSTU10&amp;pub=/hk/Chinese</new> 
     <dateAdded>2010-05-03T14:45:00 </dateAdded> 
     <comment>CUGO's</comments>  
</VanityUrl> 
<VanityUrl> 
     <old>/kgfmastercard</old> 
     <new></new> 
     <NotLive>yes</NotLive> 
     <dateAdded>2010-05-03T14:45:00 </dateAdded> 
     <comment>Reserved below vanity URL's</comments>  
</VanityUrl> 
<VanityUrl> 
     <old>/mastercard</old> 
     <new></new> 
     <NotLive>yes</NotLive> 
     <dateAdded>2010-05-03T14:45:00 </dateAdded> 
     <comment>Reserved below vanity URL's</comments>  
</VanityUrl> 

सब कुछ ठीक है, लेकिन मैं काम करने में सक्षम नहीं कर रहा हूँ टिप्पणियां अनुभाग के साथ, मैं टिप्पणियों के तत्वों को संबंधित टिप्पणियों के अनुसार कैसे जोड़ सकता हूं। मैं अपने xslt में नीचे दिए गए कोड का मतलब ठीक से काम नहीं कर रहा है, अपने को जोड़ने पहली टिप्पणी केवल अर्थात समाचार मानचित्रण

xsl:if test="preceding-sibling::comment()"> 
       <comments> 
       <xsl:value-of select="preceding-sibling::comment()" /> 
       </comments> 
      </xsl:if> 
+0

धन्यवाद! मैं xmlSpy –

उत्तर

10

preceding-sibling::comment() आप देता है एक नोड-सेट रिवर्स दस्तावेज़ क्रम में मौजूदा स्तर पर सभी पूर्ववर्ती टिप्पणी नोड्स की। हालांकि, आपको इसे काम करने के लिए सबसे नज़दीकी टिप्पणी चुननी होगी:

<xsl:if test="preceding-sibling::comment()[1]"> 
    <comments> 
    <xsl:value-of select="preceding-sibling::comment()[1]" /> 
    </comments> 
</xsl:if> 
+0

धन्यवाद @ 0xA3 का उपयोग कर रहा हूं, यह मेरे लिए चीयर्स काम करता है !! सही उत्तर के लिए –

+0

+1। –

+0

+1 सही उत्तर। –

संबंधित मुद्दे