/ / एक एक्सएमएल से तत्व मान का चयन कैसे करें और एक्सएसएल का उपयोग कर विभिन्न टैग नाम के साथ एक नया एक्सएमएल उत्पन्न करें? - एक्सएमएल, एक्सएसएलटी

एक्सएमएल का उपयोग करके एक एक्सएमएल से तत्व मान का चयन कैसे करें और विभिन्न टैग नाम के साथ एक नया एक्सएमएल उत्पन्न करें? - एक्सएमएल, एक्सएसएलटी

मेरा इनपुट एक्सएमएल यहाँ है:

<?xml version="1.0" encoding="utf-8"?>
<max:InvokePMR_SR_OS xmlns:max="http://www.ibbm.com/maximo"
creationDateTime="2008-09-28T21:49:45" baseLanguage="string" transLanguage="string"
messageID="string" maximoVersion="string">
<max:PMR_SR_OSSet>
<max:SR action="Delete" relationship="string" deleteForInsert="string" transLanguage="string">
<max:MAXINTERRORMSG>string</max:MAXINTERRORMSG>
<max:CLASS maxvalue="string" changed="true">string</max:CLASS>
<max:DESCRIPTION_LONGDESCRIPTION changed="true">string</max:DESCRIPTION_LONGDESCRIPTION>
<max:TICKETID changed="true">abc123def</max:TICKETID>
</max:SR>
</max:PMR_SR_OSSet>
</max:InvokePMR_SR_OS>

मैं टिकिटिड का मान चुनना चाहता हूं जो abc123def है और नीचे जैसा एक नया एक्सएमएल उत्पन्न करता है आउटपुट एक्सएमएल:

<?xml version="1.0" encoding="utf-8"?>
<pmrtext>abc123def</pmrtext>

कृपया मुझे एक वैध एक्सएसएल फ़ाइल प्राप्त करने में मदद करें जो मेरे इनपुट एक्सएमएल को आउटपुट एक्सएमएल में परिवर्तित कर देगी।

उत्तर:

उत्तर № 1 के लिए 1

इस परिवर्तन को काम करना चाहिए:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:max="http://www.ibbm.com/maximo">
<xsl:output encoding="utf-8"/>
<xsl:template match="max:TICKETID">
<xsl:element name="pmrtext">
<xsl:value-of select="text()"/>
</xsl:element>
</xsl:template>
<xsl:template match="/">
<xsl:apply-templates select="//max:TICKETID"/>
</xsl:template>
</xsl:stylesheet>

जवाब के लिए 0 № 2

निम्नलिखित xsl आपके लिए नौकरी करेगा:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:max="http://www.ibbm.com/maximo" version="1.0">
<!-- declare your input xml"s namespace -->
<xsl:template match="/max:InvokePMR_SR_OS/max:PMR_SR_OSSet/max:SR">
<!-- xpath your way to your element -->
<xsl:element name="pmrtext"> <!-- your element name here -->
<xsl:value-of select="max:TICKETID"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>

मुझे लगता है कि मुश्किल हिस्सा आपके इनपुट एक्सएमएल के नामस्थान की घोषणा करेगा। इसके अलावा यह बहुत सीधे आगे है।

Xpath के माध्यम से वांछित तत्व के मूल्य तक पहुंचने के कई तरीके हैं, यह केवल एक है।