Avatar billede rrm Nybegynder
11. august 2006 - 11:48 Der er 4 kommentarer og
1 løsning

Problem med xml.selectSingleNode

Hejsa, jeg er stødt ind i et lille xml problem i visual basic.

Jeg har følgende xml:
<?xml version="1.0"?>
<StyledLayerDescriptor version="1.0.0" ...>
    <Name>TestName</Name>
    <Title>TestTitle</Title>
    <Abstract>TestAbstract</Abstract>
</StyledLayerDescriptor>

Og herfra forsøger jeg at få elementet <Name> ud, ved:
doc.SelectSingleNode("StyledLayerDescriptor/Name")

men det returnere Nothing...

doc.SelectSingleNode("/") giver:
<?xml version="1.0"?><StyledLayerDescriptor version="1.0.0" ...><Name>TestName</Name><Title>TestTitle</Title><Abstract>TestAbstract</Abstract></StyledLayerDescriptor>

Nogen der kan se hvad der er galt???
Avatar billede arne_v Ekspert
12. august 2006 - 02:24 #1
mystisk - jeg får nemlig TestName ud i min test kode ...

må vi se noget mere kode ?
Avatar billede rrm Nybegynder
12. august 2006 - 09:54 #2
Det var da spøjst, men jeg fandt "fejlen", der åbenbart lå i et namespace, som jeg har udladt at sende med... SÅ vidt jeg husker lå namespaces på xmlns=http://www.opengis.net/sld (har ikke lige koden ved hånden), hvis jeg fjernede dette så virkede koden.. Nu er jeg ikke en namespace haj....
Avatar billede arne_v Ekspert
13. august 2006 - 01:18 #3
efter min mening er namespaces noget fanden har opfundet !
Avatar billede rrm Nybegynder
22. august 2006 - 11:40 #4
hmm, den kan åbenbart ikke lig default namespaces... Den virker fint hvis jeg ikke bruger default namespaces, men så skal alle tag prefixse med sld før den kan valideres.

Jeg har følgende xml
<?xml version="1.0"?>
<StyledLayerDescriptor version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd" xmlns:sld="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Name>TestName</Name>
<Title>TestTitle</Title>
<Abstract>TestAbstract</Abstract>
</StyledLayerDescriptor>

Henter dette xml ind ved:
Dim writer As Xml.XmlTextWriter = New Xml.XmlTextWriter(file, Nothing)
doc.Load(file)
hvor file er stien til filen, der indeholder xml'et

Så spørger jeg med:
Dim r As Xml.XmlNode = doc.SelectSingleNode("/StyledLayerDescriptor/Name")
Console.WriteLine("Name " & r.InnerXml)

og får svaret at noden ikke findes.... Nogen ideer???
Avatar billede rrm Nybegynder
24. august 2006 - 14:06 #5
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