क्या एक्सएसएलटी में एक विशिष्ट टैग ढूंढना और इसे इसकी सामग्री से बदलना संभव है? उदाहरण के लिए, यह एक्सएमएल दिया गया है:
<span>Hello world</span>
हम इसके साथ समाप्त करेंगे:
Hello world
तो किसी भी स्तर पर (पुनरावर्ती) बेकार और निरर्थक SPAN टैग को इसकी सामग्री से बदल दिया जाता है। हम "नग्न" स्पैन टैग (जिनमें कोई विशेषता नहीं है) खोजना चाहते हैं और उन्हें उनकी सामग्री से बदलना चाहते हैं।
मैं एक्सएमएल संसाधित कर रहा हूं जिस पर मेरा नियंत्रण नहीं है। धन्यवाद।
अपडेट करें: यहां बताया गया है कि *.XSL फ़ाइल में क्या है, उसके बाद नमूना आउटपुट:
<xsl:stylesheet
version="1.0"
exclude-result-prefixes="x d xsl msxsl cmswrt"
xmlns:x="http://www.w3.org/2001/XMLSchema"
xmlns:d="http://schemas.microsoft.com/sharepoint/dsp"
xmlns:cmswrt="http://schemas.microsoft.com/WebParts/v3/Publishing/runtime"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:param name="ItemsHaveStreams">
<xsl:value-of select="'False'" />
</xsl:param>
<xsl:variable name="OnClickTargetAttribute" select="string('javascript:this.target="_blank"')" />
<xsl:variable name="ImageWidth" />
<xsl:variable name="ImageHeight" />
<xsl:template name="Contact" match="Row[@Style='Contact']" mode="itemstyle">
<div class="outer-container">
<table border="0" cellspacing="0" width="100%">
<tr>
<td class="ms-vb" style="text-align:left; padding:9px;">
<span style="font-weight:bold; border-bottom:1px solid #999;"><xsl:value-of select="@Title"/></span>
<!-- Phone and Emergency Phone -->
<xsl:if test="@Phone != '' or @EmergencyPhone != ''">
<xsl:if test="@Phone != ''">
<xsl:value-of select="@Phone" disable-output-escaping="yes"/><br />
</xsl:if>
<xsl:if test="@EmergencyPhone != ''">
<xsl:value-of select="@EmergencyPhone" disable-output-escaping="yes"/>
</xsl:if>
</xsl:if>
<!-- Email -->
<xsl:if test="@Email != ''">
<span style="text-align:left">E-mail: <a href="mailto:{@Email}"><xsl:value-of select="@Email"/></a></span>
</xsl:if>
<!-- Address & Map -->
<!--
Must test for both empty string and empty div tags, escaped.
-->
<xsl:if test="@Address != '' and @Address !='<div></div>'">
<p>Address: <xsl:value-of select="@Address" disable-output-escaping="yes"/></p>
</xsl:if>
<xsl:if test="@Map != ''">
(<a href="{@Map}">MAP</a>)
</xsl:if>
<!-- Opening Hours -->
<xsl:if test="@OpeningHours != ''">
<p><b>Opening Hours:</b></p>
<xsl:value-of select="@OpeningHours" disable-output-escaping="yes"/>
</xsl:if>
</td>
</tr>
</table>
</div>
</xsl:template>
</xsl:stylesheet>
यहाँ वर्तमान में एक नमूना आउटपुट है:
Contact Health Services
962-8328
962-8945
Emergency only: 962-8884
After hours, contact Security Dispatch to connect with Health Services staff on duty.
E-mail: health@mydomain.org
Address:
123 Main St.
(MAP)
Opening Hours:
Sunday -Thursday 08:00 -17:30
1 उत्तर
यह XPath बिना विशेषताओं के सभी span
तत्व ढूंढेगा:
//span[not(@*)]
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="span[not(@*)]">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
संबंधित सवाल
नए सवाल
xml
XML (एक्स्टेंसिबल मार्कअप लैंग्वेज) एक संरचित दस्तावेज़ प्रारूप है जो टेक्स्ट एन्कोडिंग नियमों को परिभाषित करता है। इस टैग का उपयोग करते समय अतिरिक्त टैग जैसे प्रोग्रामिंग भाषा, टूल सेट, XML तकनीकों का उपयोग किया जा रहा है, और अन्य टैग पोस्ट की गई समस्या के वातावरण का वर्णन करते हैं। XML लचीलापन मानव और मशीन डेटा हस्तांतरण के लिए उपयोग की एक विस्तृत विविधता के लिए उधार देता है इसलिए उपकरण और पुस्तकालयों के रूप में विशिष्ट हो।
xsl:stylesheet
टैग के अंदर सबसे ऊपर रखूंगा? मैं एक्सएसएलटी के लिए नौसिखिया हूँ इसलिए कृपया मेरी अज्ञानता को क्षमा करें :) धन्यवाद।match="@* | node()"
) किसी भी नोड (तत्व, विशेषता, आदि) से मेल खाएगा और इसे आउटपुट एक्सएमएल में कॉपी करेगा। यदि यहspan
बिना किसी विशेषता के तत्व पाता है तो दूसरा टेम्प्लेट (span[not(@*)]
) लागू होगा, जो स्वयं तत्व की नकल नहीं करता है।