Toon posts:

[XML] het gebruiken van het & teken probleem

Pagina: 1
Acties:
  • 668 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
ik heb een xml (zie onderstaande code):

code:
1
2
3
<data>
  <record>[b]&[/b]<record>
<data>


Het bovenstaande xml is geen valide xml door de & teken. De & teken wil ik dus graag vervangen naar & dit doe ik doormiddel van een xslt door een template aan te roepen die de & teken vervangt met &. deze template heb ik getest met een andere teken dus aan de template zal het niet liggen. maar wanneer ik de & teken wil gaan vervangen dan gaat het niet. de xml processor zegt dan dat de xml niet valid is. Is er een manier om dit probleem op te lossen (zonder handmatig zelf de teken te veranderen?)?

in de style sheet heb ik gebruik gemaak van <![CDATA[&]]> om gebruik te kunnen maken van & teken.

  • party42
  • Registratie: Oktober 2000
  • Laatst online: 13-02 15:56
gewoon alles in CDATA zetten?

code:
1
2
3
4
5
<data>
  <record>
    <![CDATA[[b]&[/b]]]>
  </record>
</data>


ps. het helpt wel als je je elementen zelf ook afsluit... dus een /record en /data... :)

Everyday's an endless stream, of cigarettes and magazines...


Verwijderd

Topicstarter
party42 schreef op vrijdag 21 juli 2006 @ 14:56:
gewoon alles in CDATA zetten?

code:
1
2
3
4
5
<data>
  <record>
    <![CDATA[[b]&[/b]]]>
  </record>
</data>


ps. het helpt wel als je je elementen zelf ook afsluit... dus een /record en /data... :)
hehe ja das waar (vergeten te sluiten) maar zoals ik al eerder zei ik mag die xml niet veranderen. dat is dus het hele probleem juist

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 21:16

Cyphax

Moderator LNX
Je leest die XML niet in met een scripttaal? Dan zou je wel een string-replace los kunnen laten zonder de XML zelf te veranderen... anders vrees ik dat het moeilijk wordt.

Saved by the buoyancy of citrus


Verwijderd

Topicstarter
Cyphax schreef op vrijdag 21 juli 2006 @ 15:08:
Je leest die XML niet in met een scripttaal? Dan zou je wel een string-replace los kunnen laten zonder de XML zelf te veranderen... anders vrees ik dat het moeilijk wordt.
nee ik lees het niet in een scripttaal. het replacen van tekens wil ik doen met een xslt sheets maar dat gaat moeilijk met die invalid xml

Verwijderd

een entiteit gebruiken?
code:
1
&amp;

[ Voor 6% gewijzigd door Verwijderd op 21-07-2006 15:18 ]


  • Cyphax
  • Registratie: November 2000
  • Laatst online: 21:16

Cyphax

Moderator LNX
Verwijderd schreef op vrijdag 21 juli 2006 @ 15:17:
een entiteit gebruiken?
code:
1
&amp;
Dat zou moeten gebeuren bij het genereren van die XML maar dan is het al te laat... nou zit b met de gebakken peren blijkbaar...
Verwijderd schreef op vrijdag 21 juli 2006 @ 15:11:
[...]


nee ik lees het niet in een scripttaal. het replacen van tekens wil ik doen met een xslt sheets maar dat gaat moeilijk met die invalid xml
Volgens mij gaat dat niet lukken. Heb je iets meer info over de situatie, want zonder het aanpassen van de XML gaat dit denk ik niet lukken. Waarom maakt de bron er invalid XML van, en is dat niet te fixen?

Saved by the buoyancy of citrus


Verwijderd

Topicstarter
Cyphax schreef op vrijdag 21 juli 2006 @ 15:20:
[...]

Dat zou moeten gebeuren bij het genereren van die XML maar dan is het al te laat... nou zit b met de gebakken peren blijkbaar...

[...]

Volgens mij gaat dat niet lukken. Heb je iets meer info over de situatie, want zonder het aanpassen van de XML gaat dit denk ik niet lukken. Waarom maakt de bron er invalid XML van, en is dat niet te fixen?
Uit een excel sheets worden de data's naar een xml weggeschreven. Dit gebeurt door een macro te runnen. (die macro genereert dus de xml). Helaas heb ik dus geen toegang tot die macro vandaar mijn vraag. Maar goed het is dus niet mogelijk om dit probleem op te lossen :X dus eigenlijk moet de macro aangepast worden.

  • vogeltje
  • Registratie: December 2001
  • Laatst online: 10-08-2025
Verwijderd schreef op vrijdag 21 juli 2006 @ 15:29:
[...]


Uit een excel sheets worden de data's naar een xml weggeschreven. Dit gebeurt door een macro te runnen. (die macro genereert dus de xml). Helaas heb ik dus geen toegang tot die macro vandaar mijn vraag. Maar goed het is dus niet mogelijk om dit probleem op te lossen :X dus eigenlijk moet de macro aangepast worden.
tja, of je gooit dat xml bestand eerst door een eigen parser (text-based ipv. xml-based), die de aangeleverde xml 'valide' maakt. En vervolgens kan je em alsnog transformeren m.b.v. xslt...

ik lees net dat je geen scripttaal gebruikt, enkel xslt. Toch denk ik dat je een of ander on-the-fly script er tussen door moet laten. Of de macro aanpassen natuurlijk, wat mij effectiever lijkt.

[ Voor 16% gewijzigd door vogeltje op 21-07-2006 16:03 ]

binnenkort een hele dikke casemod :P


  • Johnny
  • Registratie: December 2001
  • Laatst online: 13-02 11:27

Johnny

ondergewaardeerde internetguru

Was er niet een soort regel dat het absoluut verboden was voor xml-parsers om foutcorrectie toe te passen om zo te voorkomen dat er net als met HTML een wildgroei aan dialecten ontstaat die net allemaal anders werken?

Het minste wat je moet doen is de persoon die verantwoordelijk is voor dit net-geen-XML even flink de oren moet wassen.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • vogeltje
  • Registratie: December 2001
  • Laatst online: 10-08-2025
Johnny schreef op vrijdag 21 juli 2006 @ 16:08:
Was er niet een soort regel dat het absoluut verboden was voor xml-parsers om foutcorrectie toe te passen om zo te voorkomen dat er net als met HTML een wildgroei aan dialecten ontstaat die net allemaal anders werken?

Het minste wat je moet doen is de persoon die verantwoordelijk is voor dit net-geen-XML even flink de oren moet wassen.
Het probleem van de TS is hier nu ook meer het feit dat er invalide xml uit dat excel macrotje rolt, niet zozeer dat een van de zovele xml parers het foutief zou interpreteren. Daarom denk ik dan ook dat het beter zou zijn, die excel macro te fixen. Dan het probleem te 'verplaatsen' naar zijn eigen xslt-transformatie.

binnenkort een hele dikke casemod :P


Verwijderd

Topicstarter
Ik wil jullie in iedergeval bedankken voor jullie opmerkingen.

Het zit niks anders op dan de persoon aan te spreken die hiervoor verantwoordelijk is of zelf een scriptje voor schrijven die dit allemaal regeld.
Pagina: 1