Avatar billede henrik_k Nybegynder
20. november 2009 - 14:00 Der er 5 kommentarer

Parsing af XML streng

Strengen læses fra en database og er i nedenstående format:

<?xml version="1.0" encoding="utf-8"?>
<root dpcontainer='true'>
<descr></descr>
<name></name>
…..
</root>

Mit problem er at dokumentet kan indeholde følgende værdier: <, > og & hvilket gør at jeg ikke kan læse det ind i en xml parser. Er det muligt at escape værdierne uden at ødelægge nodernes <> escapes?
Avatar billede henrik_k Nybegynder
20. november 2009 - 14:07 #1
Jeg glemte at skrive at der er MANGE forskellige xml dokumenttyper så det skal helst være en generel løsning
Avatar billede arne_v Ekspert
20. november 2009 - 14:42 #2
Du har <a>bla <b>bla</b> bla</a>  hvor <a></a> er et tag og <b></b> er data??

Det er ikke valid XML.

Og jeg tror ikke at du kan finde en generelt loesning til at skelne mellem de to slags <>.

Problemet skal loeses der hvor den XML genereres. <> skal gammes som &lt; &gt; i.s.f. !
Avatar billede henrik_k Nybegynder
20. november 2009 - 15:01 #3
Det jeg mente var:

<a>
  <b> < & > </b>
</a>

hvor <a></a> og <b></b> er tags men b har værdien "< & >".

Jeg har desvære ikke mulighed for at løse problemet hvor xml skrives, da det er legacy data. Der er envidere rå mængder af det 1GB+ så der er heller ikke mulighed for at rette det til
Avatar billede arne_v Ekspert
20. november 2009 - 15:13 #4
Det er jo som sagt ikke valid XML.

Det er umuligt at lave en 100% generel loesning.

Men hvis du kan komme op med nogle regler for hvornaar noget er tag og hvornaar noget er data kan du vel lave et rimeligt hack.
Avatar billede windcape Praktikant
21. november 2009 - 17:06 #5
Værdierne skulle da helst være i CDATA, ala:

<a>
  <b><![CDATA[< & >]]></b>
</a>

Men det lyder ikke sådan.
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

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