03. januar 2013 - 23:39 Der er 4 kommentarer og
1 løsning

XML fra HTML-side.

PÅ min <HTML> side har jeg et stykke nede følgende:

<XML id="KlientXML">
<howto>
  <topic>
<kundenummer color="white">1000</kundenummer>
<navn color="white">JENS JENSEN </navn>
<adresse1 color="white">Slotsgade 21</adresse1>
<adresse2 color="white"></adresse2>
<adresse3 color="white"></adresse3>
<postnummer color="white">2200</postnummer>
<postnummer color="white">København Ø</postnummer>
<land color="white">Danmark</land>
...
</topic>
..

Det jeg ønsker er an metode således at jeg ved hjælp af JavaScript kan få adgang til tekstelementet eks: JENS JENSEN (navn) og attributten White (color).

Hvis jeg kan oprette XML-tabellen "KlientXML" som et XML-object kan jeg få tilgang til alle nodes, child-nodes osv.

Men jeg ved ikke hvordan jeg får adgang til dette XML-object.

Det er ikke hensigtsmæssigt her at oprette filer og bruge LoadXML(fil) på grund af konfidentielle data. (Må ikke kunne spores via filer etc. senere).

Kristian
Avatar billede arne_v Ekspert
03. januar 2013 - 23:50 #1
XML embedded i HTML er mig bekendt kun understoettet i XHTML og et noget IE specifik quirk HTML.

Mit foerste forslag vil vaere ikke at embedde i din HTML og lade JavaScript hente det separat (AJAX).

Mit andet forslag vil vaere at du bruger XHTML og giver det der et eget namespace og saa burde det vaere nemt at hente ud fra JavaScript.
04. januar 2013 - 16:50 #2
HEJ,

Tak for respons.

Jeg har fået det hele til at fungere, som jg vil have det.

Søgte på nettet (2 timer - (¤%¤%%¤%&¤ til arbejde)) og fandt endelig det jeg søgte efter. Brugte en hel nat (gaaaab) på at tilpasse og modificere.

Så det kører nu.

Men tak for forslaget.

Kristian
Avatar billede arne_v Ekspert
04. januar 2013 - 17:43 #3
Og loesningen blev?
07. januar 2013 - 14:48 #4
HEJ

Der er egentlig ikke tale om en ÆGTE XML-løsning (som jeg ved det), mere en pseudo. Min "XML"-streng laves om til en lang linie a la:

txt = '<howto><topic><kundenummer color="white">1000</kundenummer><navn color="white">Jens Jensen</navn><adresse1 color="white">Slotsgade 21</adresse1><adresse2 color="white">.... </topic></howto> ';



if (window.DOMParser)
{
    parser = new DOMParser();
    xmlDoc = parser.parseFromString(txt,"text/xml");
}
else // Internet Explorer
{
    xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async = false;
    xmlDoc.loadXML(txt);
}

Herfra kan jeg så få tilgang til de enkelte childNodes(n)
som (i java script:)

(x er en ydre sløjfe( der er flere end 1 klient):  (adresse1 er et TD id='adresse1[x]")

var v1 = document.getElementById("adresse1["+x+"]");
    if (v1 == '')
    {
          v1.innerHTML = xmlDoc.childNodes(0).childNodes(x).childNodes(1).text;
        v1.style.background = white;
    }
    else
    {
        v1.innerHTML = xmlDoc.childNodes(0).childNodes(x).childNodes(1).text;
        v1.style.background = xmlDoc.childNodes(0).childNodes(x).childNodes(1).getAttribute("color");
        }

Der er sikkert elegantere løsninger, men det her virker perfekt. Og jeg er nybegynder i XML/JavaScript.

Kristian
19. januar 2013 - 12:41 #5
LUKKER
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