xsl-list
[Top] [All Lists]

Re: ENCODING COUNTRY CODES

2005-04-25 03:59:20
Please try this XSL.. It is a modified identity
stylesheet.. 

In this stylesheet, I have made some assumtions -
1) The CountryCode.xml file you posted specifies
England. So I think source.xml should also specify
England (not ENGLAND) . I tested by changing to
England..
2) My stylesheet is replacing a "string pattern" (its
first occurence) in <affiliation> tag with value from
CountryCode.xml file..   
This is having following effect..
<affiliation>
  <country code="in">India</country>n Institute of
Technology, Chennai, India - 610545
</affiliation>

Hope you may take the idea from this stylesheet..

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

<xsl:variable name="country"
select="document('CountryCode.xml')" />
 
<xsl:template match="node() | @*">
  <xsl:copy>
    <xsl:apply-templates select="node() | @*" />
  </xsl:copy>
</xsl:template>
 
<xsl:template match="para" />
 
<xsl:template match="text()[not(normalize-space() =
'')]"> 
   <xsl:variable name="temp" select="." />
   
   <xsl:for-each
select="$country/allcountry/country[contains($temp,
.)]">
     <xsl:value-of select="substring-before($temp, .)"
/>
     <country code="{(_at_)code}">
       <xsl:value-of select="." />
     </country>
     <xsl:value-of select="substring-after($temp, .)"
/>   
   </xsl:for-each>
   
</xsl:template>
 
</xsl:stylesheet>

Regards,
Mukul

--- Arulxml(_at_)netscape(_dot_)net wrote:
Dear all,

Greetings

I require XSLT support in amending the country codes
to my resulting XML. I have all country names with
relevant country codes in an external XML file
(i.e., CountryCode.xml, given below), here I require
all countries needs to be encoded in my each
<affiliation> of the source xml, also please find
below the resulting xml for your easy understanding.

CountryCode.xml
<allcountry>
    <country code="gb">England</country>
    <country code="in">India</country>
    <country code="us">USA</country>
<allcountry>

source.xml
<root>
    <para>Some text</para>
    <affiliation>Indian Institute of Technology,
Chennai, India - 610545</affiliation>
<affiliation>SOME INSTITUTION NAME, ENGLAND -
12245</affiliation>
    <affiliation>IEEE Institution, NY,
USA</affiliation>
</root>

result.xml
<root>
    <affiliation>Indian Institute of Technology,
Chennai, <country code="in">India</country> -
610545</affiliation>
<affiliation>SOME INSTITUTION NAME, <country
code="gb">ENGLAND</country> - 12245</affiliation>
    <affiliation>IEEE Institution, NY, <country
code="us">USA</country></affiliation>
</root>

Please advise me how the XSLT should look, many
thanks in advance.

Best regards
Arul Kumar



__________________________________________________________________
Switch to Netscape Internet Service.
As low as $9.95 a month -- Sign up today at
http://isp.netscape.com/register

Netscape. Just the Net You Need.

New! Netscape Toolbar for Internet Explorer
Search from anywhere on the Web and block those
annoying pop-ups.
Download now at
http://channels.netscape.com/ns/search/install.jsp


--~------------------------------------------------------------------
XSL-List info and archive: 
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to:
http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>