Avatar billede djondjoe Nybegynder
23. marts 2004 - 15:02 Der er 4 kommentarer og
1 løsning

Unavngivne namespaces og Xpaths

Sidder og arbejder med en VB applikation, der benytter MSXML 4 sp2, og som skal læse XML filer ind og hente data derfra vha XPath.

<?xml version="1.0" encoding="ISO-8859-1"?>
<Emessage xmlns="http://En-eller-anden-url">
    <Envelope>
...

Jeg kunne ikke hente nogen som helst informationer vha XPath ved denne XML, men fandt efter lang tid ud af, at det virkede, hvis jeg ændrede namespacet til

<Emessage xmlns:n="http://En-eller-anden-url">

Ved at navngive det ":n" virkede det altså pludselig. Nu er mit spørgsmål: Er det påkrævet at navngive sine namespaces, eller kan man undlade det? Idet MSXML ikke virker ordentligt uden, finder jeg det mærkeligt, hvis det er helt lovligt at gøre det.
Avatar billede djondjoe Nybegynder
23. marts 2004 - 15:08 #1
Hvis det er lovligt uden ":n", hvordan kan jeg så få det til at virke med XPath?
Avatar billede rasmusbg Nybegynder
23. marts 2004 - 15:14 #2
Ifølge W3C's specifikation er det lovligt at undlade ":n". Det betyder at man vælger "http://en-eller-anden-url" til at være default namespace.

Hvis MSXML ikke fungerer ordentligt uden, så er det den, der er underlig :o)
Avatar billede nute Nybegynder
23. marts 2004 - 16:20 #3
xpath er ligegyldig med om der er namespace eller ikke namespace. du kan sagtens have et xml dokument der ser sådan ud:

<?xml version="1.0" encoding="ISO-8859-1"?>
<Emessage>
    <Envelope></Envelope>
</Emessage>

og trække data ud fra dette ved hjælp af xpath

/nute
Avatar billede djondjoe Nybegynder
23. marts 2004 - 16:23 #4
Har selv fundet ud af det nu. Man skal tilføje

oXMLDOM.setProperty "SelectionLanguage", "XPath"
oXMLDOM.setProperty "SelectionNamespaces", "xmlns:a='http://en-eller-anden-url'"

og så virker det.
Avatar billede nute Nybegynder
23. marts 2004 - 16:26 #5
djondjoe >> det er dit DOM objekt der ikke tillader dig at selecte noget fra det ... højst sandsynligt fordi det ikke engang får læst dit dokument ind. xpath er bare et "dumt" query-language der er ligeglad med strukturen i dit dokument

;o]
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