Avatar billede saybot Nybegynder
02. juni 2005 - 14:51 Der er 6 kommentarer og
1 løsning

well-formed XML

Jeg har et lille problem som jeg gerne vil have lidt hjælp til.

jeg har et xml dokument som bruges af min asp rss parser.

Jeg har bare det problem at noget af xml'en ikke er "well-formed XML"

Jeg ved godt hvor problemet ligger, men ved ikke hvordan jeg kan løse det.

Her er koden__________________________________________
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="*">




<xsl:for-each select="//*[local-name()='item'] | //*[local-name()='entry']">
<xsl:if test="position() &lt; 6">

<a target="_blank">
<xsl:attribute name="href">
?link_ud=
<xsl:for-each select="*[local-name()='link']">
<xsl:choose>
<xsl:when test="@rel='alternate'">
<xsl:value-of disable-output-escaping="yes" select="./@href"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:attribute>

<b><span id='nyheder_top' onmouseover="return escape('<xsl:value-of disable-output-escaping="yes" select="*[local-name()='description']"/>')"><xsl:value-of disable-output-escaping="yes" select="*[local-name()='title']"/></span></b><br></br>
</a>

</xsl:if>
</xsl:for-each>

</xsl:template>

<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>

</xsl:stylesheet>


Fejlen der forekommer_______________________________

XML Parsing Error: not well-formed
Location: http://saybot.dk/beta/nyheds_opbygning.xsl
Line Number 27, Column 55:<b><span id='nyheder_top' onmouseover="return escape('<xsl:value-of disable-output-escaping="yes" select="*[local-name()='description']"/>')"><xsl:value-of disable-output-escaping="yes" select="*[local-name()='title']"/></span></b><br></br>
------------------------------------------------------^


Jeg skal have gjort denne:

<span id='nyheder_top' onmouseover="return escape('<xsl:value-of disable-output-escaping="yes" select="*[local-name()='description']"/>')">

"rigtig" om man må sige det.

Håber nogle kan hjælpe mig... ved ikke engang om det jeg prøver på kan lade sig gøre.
Avatar billede davidfossil Nybegynder
02. juni 2005 - 16:30 #1
Nu vil jeg ikke foregive at være den største XSL-haj i landet, men her er min tanke:

<xsl:text><b><span id='nyheder_top' onmouseover="return escape('</xsl:text>
<xsl:value-of disable-output-escaping="yes" select="*[local-name()='description']"/>
<xsl:text>')"></xsl:text>
<xsl:value-of disable-output-escaping="yes" select="*[local-name()='title']"/>
<xsl:text></span></b><br /></a></xsl:text>
Avatar billede davidfossil Nybegynder
02. juni 2005 - 16:32 #2
Endvidere skal man sikkert omskrive alle de "farlige" tegn i tekstdelen:

<xsl:text>&lt;b&gt;&lt;span id='nyheder_top' onmouseover=&quot;return escape('</xsl:text>
<xsl:value-of disable-output-escaping="yes" select="*[local-name()='description']"/>
<xsl:text>')&quot;&gt;</xsl:text>
<xsl:value-of disable-output-escaping="yes" select="*[local-name()='title']"/>
<xsl:text>&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;/a&gt;</xsl:text>

Som sagt er jeg ikke helt klar over om dette er den rigtige vinkel på problemet, men prøv at skifte de midterste linjer ud med dette :o)
Avatar billede davidfossil Nybegynder
02. juni 2005 - 16:35 #3
Hmm - jeg er måske helt gal på den.
Hvis man skal den vej som jeg påstår, skal din <a target="_blank"> nok også omskrives til en <xsl:text> - som sagt kender jeg ikke meget til XSL ;-)
Avatar billede saybot Nybegynder
02. juni 2005 - 17:33 #4
Undskyld jeg siger det hehe, men du er helt gal på den. Men det er da fedt du kommer med forslag :)
Avatar billede Slettet bruger
02. juni 2005 - 22:27 #5
Det du gerne vil, kan skrives sådan her (med tilføjet whitespace for overskuelighedens skyld):

<span id="nyheder_top">
  <xsl:attribute name="onmouseover">
      return escape('<xsl:value-of disable-output-escaping="yes" select="*[local-name()='description']"/>')
  </xsl:attribute>
  <xsl:value-of disable-output-escaping="yes" select="*[local-name()='title']"/>
</span>

/CS
Avatar billede saybot Nybegynder
02. juni 2005 - 23:17 #6
takker for hjælpen... det lykkedes :)
Avatar billede saybot Nybegynder
02. juni 2005 - 23:17 #7
takker for hjælpen... det lykkedes :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester