XML Programming
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
User Name:
Password:
Remember me
Go Back   Dev Shed ForumsProgramming Languages - MoreXML Programming
Receive the tools necessary to be the rock star of your field. Our 12-month program teaches you the evolving world of multi-channel marketing as well as the complex issues and opportunities found in the industry.

ASP Free and Iron Speed Designer are giving away $5,500+ in FREE licenses. Iron Speed's RAD CASE toolset can save up to 80% of your coding time. One free license per week, one perpetual license per month!
Download and Activate to enter!

Web development can be a daunting task, even for specialists. There is a lot of information to absorb and a lot of technologies to learn in order to manage a superior website. When trying to learn the ropes, developers need a reliable source to introduce new ideas that can be easily implemented. When working on large projects, even web veterans may run into a technology or an aspect of a technology that they are unfamiliar with.

Learn More!


Download to Enter
| Contest Rules

Tutorials | Forums

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread Dev Shed Forums Sponsor:
  #1  
Old October 19th, 2010, 09:55 AM
rfiroz rfiroz is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Oct 2010
Posts: 1 rfiroz User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 10 m 36 sec
Reputation Power: 0
Question How to get the relative path of an external entity

Hello,

I need a way to get the relative path of an external entity using xsl. Given the following xml:

Code:
<!NOTATION GIF SYSTEM "Graphical Interchange Format">  
<!ENTITY mypicture SYSTEM "temp/me.gif" NDATA GIF>  
   
 ...  
   
<graphic image="mypicture"></graphic>


if I use the following xsl:

Code:
<xsl:value-of select="unparsed-entity-uri('image')"/>


It returns the absolute path from where the transformation occurs. So if I run the transformation from c:\data\xyz\ then unparsed-entity-uri('image') returns c:\data\xyz\temp\me.gif, but I need the value temp/me.gif. How can I do that using xsl.

XML that I need to transform is authored content and I cannot change that. I have to transform the xml to html and it is likely the absolute path will not match the document root, so such references will result in missing graphics when the HTML file is viewed.

Any help is greatly appreciated.

Reply With Quote
  #2  
Old October 19th, 2010, 09:21 PM
requinix's Avatar
requinix requinix is offline
Woof
Click here for more information.
 
Join Date: Mar 2007
Location: Washington, USA
Posts: 10,756 requinix User rank is General 105th Grade (Above 100000 Reputation Level)requinix User rank is General 105th Grade (Above 100000 Reputation Level)requinix User rank is General 105th Grade (Above 100000 Reputation Level)requinix User rank is General 105th Grade (Above 100000 Reputation Level)requinix User rank is General 105th Grade (Above 100000 Reputation Level)requinix User rank is General 105th Grade (Above 100000 Reputation Level)requinix User rank is General 105th Grade (Above 100000 Reputation Level)requinix User rank is General 105th Grade (Above 100000 Reputation Level)requinix User rank is General 105th Grade (Above 100000 Reputation Level)requinix User rank is General 105th Grade (Above 100000 Reputation Level)requinix User rank is General 105th Grade (Above 100000 Reputation Level)requinix User rank is General 105th Grade (Above 100000 Reputation Level)requinix User rank is General 105th Grade (Above 100000 Reputation Level)requinix User rank is General 105th Grade (Above 100000 Reputation Level)requinix User rank is General 105th Grade (Above 100000 Reputation Level)requinix User rank is General 105th Grade (Above 100000 Reputation Level)  Folding Points: 417516 Folding Title: Super Ultimate Folder - Level 1Folding Points: 417516 Folding Title: Super Ultimate Folder - Level 1Folding Points: 417516 Folding Title: Super Ultimate Folder - Level 1Folding Points: 417516 Folding Title: Super Ultimate Folder - Level 1Folding Points: 417516 Folding Title: Super Ultimate Folder - Level 1Folding Points: 417516 Folding Title: Super Ultimate Folder - Level 1
Time spent in forums: 5 Months 11 h 44 m 21 sec
Reputation Power: 7951
Send a message via AIM to requinix Send a message via MSN to requinix Send a message via Yahoo to requinix
I don't think you can with basic XSLT 1.0. What are you using to do the transformations?

Reply With Quote
  #3  
Old November 12th, 2011, 03:00 AM
cashloan cashloan is offline
Contributing User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Nov 2011
Posts: 46 cashloan User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 2 h 51 m 59 sec
Warnings Level: 10
Number of bans: 2
Reputation Power: 1
If you want to get the relative path, you have to use it in conjunction with resolve-uri(.) with some string manipulation. Like this.

<xsl:variable name="abs-path" select="unparsed-entity-uri('image')" />
<xsl:variable name="ref-path" select="replace(resolve-uri(.),'(^.*/)[^/]*$','$1')" />
<xsl:variable name="rel-path" select="substring-after($abs-path,$ref-path)" />

Now, the variable rel-path should hold the desired relative path to the image. (I assume the xsl-engine in use supports well the regex, replace() and substring-after().)

Reply With Quote
Reply

Viewing: Dev Shed ForumsProgramming Languages - MoreXML Programming > How to get the relative path of an external entity


Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump

Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 


Powered by: vBulletin Version 3.0.5
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.

© 2003-2012 by Developer Shed. All rights reserved. DS Cluster 10 - Follow our Sitemap