I have begun to incorporate XML export of bookmarks from my bookmark manager program.
The problem I have is that I need to place bookmark URLs between XML tags on export, but the URLs may contain invalid characters like the & character and others.
Can anyone tell me how to pass this information through a parser?
XML fragment:
<bookmarks>
<page name="XML">
<button number="23" title="Brainbench - Web Design Tests">
<url type="DNS">
http://www.brainbench.com/xml/bb/common/testcenter/subcatresults.xml?cat1=9&cat2=31&cat3=22</url>
<ip autoupdate="">64.14.126.119</ip>
<notes>Web design tests</notes>
<icon path="C:\AcqURL\ORCOMwebicons\brainbench_com_xml_bb_common_testcenter_subcatresults_xml_cat1=9&cat2=31&cat3=22.ico" index="600" />
</button>
</page>
</bookmarks>
XSL:
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
<body>
<table border="0" cellpadding="2">
<xsl:for-each select="bookmarks/page">
<tr>
<th><xsl:value-of select="@name"/></th>
<xsl:for-each select="button">
<tr bgcolor="{color/@button}">
<td width="200">
<a href="{url}" title="{notes}">
<font color="{color/@text}">
<xsl:value-of select="@title"/>
</font>
</a>
</td>
</tr>
</xsl:for-each>
<td> </td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
DTD:
<!--DTD for validating bookmarks-->
<!ELEMENT bookmarks (page)+>
<!ELEMENT page (button)*>
<!ATTLIST page
name CDATA #REQUIRED
>
<!ELEMENT button (url, ip, notes, user_id, site_password, extra_info, icon, color, site_update)?>
<!ATTLIST button
number CDATA #REQUIRED
title CDATA #IMPLIED
>
<!ELEMENT url (#PCDATA)>
<!ATTLIST url
type (DNS | IP | Header | FTP | File | Dir) #REQUIRED
>
<!ELEMENT ip (#PCDATA)>
<!ATTLIST ip
autoupdate (0 | 1 | 2 | 4) "0"
>
<!ELEMENT notes (#PCDATA)>
<!ELEMENT user_id (#PCDATA)>
<!ELEMENT site_password (#PCDATA)>
<!ELEMENT extra_info (#PCDATA)>
<!ELEMENT icon EMPTY>
<!ATTLIST icon
path CDATA #IMPLIED
index CDATA #IMPLIED
>
<!ELEMENT color EMPTY>
<!ATTLIST color
button CDATA #IMPLIED
text CDATA #IMPLIED
>
<!ELEMENT site_update (#PCDATA)>
Any help would be appreciated.
------------------
AcqURL : The next evolution in bookmark management.