Avatar billede pjen2004 Nybegynder
01. januar 2009 - 19:41 Der er 7 kommentarer og
1 løsning

selectNodes virker ikke på XML-fil

Jeg benytter følgende kode til at læse en XML-fil:

Private Sub Form_Load()



  Dim objDoc As MSXML2.DOMDocument40
  Dim objNodeList As MSXML2.IXMLDOMNodeList
  Dim objNode As MSXML2.IXMLDOMNode
       
  Set objDoc = New MSXML2.DOMDocument40
 

  If objDoc.Load("C:\VB\WFS1\Node_test\wfs.xml") Then
    If Not objDoc Is Nothing Then
      Set objNodeList = objDoc.selectNodes("wfs_FeatureCollection/gml_featureMember/pdk_akt_lokalplan_v/pdk_planid")
           
      If Not objNodeList Is Nothing Then
        'Loop though each node in the node list
        For Each objNode In objNodeList
          MsgBox objNode.Text
        Next
      End If
   
    End If
  End If
 

End
 
End Sub


XML-filen er indsat herunder. Mit problemer er følgende:

1) Jeg kan ikke få "selectNodes" til at virke, medmindre jer erstatter ":" med et andet tegn - f.eks. "_". Jeg kan ikke umiddelbart rette i filen, der hentes fra en webserver.

2) Første node har en lang beskrivelse efter sig "wfs_FeatureCollection......" - det bevirker at jeg heller ikke kan få "selectNodes" til at virke her - medmindre jer barbarer denne ned til kun at hedder ""wfs_FeatureCollection".

Jeg håber en har nogle gode ideer til en løsning ! :-)




<?xml version="1.0" encoding="ISO-8859-1"?>
<wfs:FeatureCollection xmlns="http://www.opengis.net/wfs" xmlns:wfs="http://www.opengis.net/wfs" xmlns:gml="http://www.opengis.net/gml" xmlns:pdk="http://wfs.plansystem.dk" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://wfs.plansystem.dk:80/geoserver/schemas/wfs/1.0.0/WFS-basic.xsd http://wfs.plansystem.dk http://wfs.plansystem.dk:80/geoserver/wfs/DescribeFeatureType?typeName=pdk:akt_lokalplan_v">
  <gml:boundedBy>
    <gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#25832">
      <gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">579000.9375,6229998.5 579484.375,6230462</gml:coordinates>
    </gml:Box>
  </gml:boundedBy>
  <gml:featureMember>
    <pdk:akt_lokalplan_v fid="akt_lokalplan_v.110430">
      <pdk:planid>1086996</pdk:planid>
      <pdk:plantype>20.2</pdk:plantype>
      <pdk:plantypebesk>Byplanvedtægter</pdk:plantypebesk>
      <pdk:plannr>H-E_5</pdk:plannr>
      <pdk:plannavn>Kontor, handel og lagervirksomhed øst for Grenåvej ved Muslingevej, Dalsager og Solklintevej.</pdk:plannavn>
      <pdk:komnr>751</pdk:komnr>
      <pdk:komnavn>Århus</pdk:komnavn>
      <pdk:geometri>
        <gml:MultiPolygon srsName="http://www.opengis.net/gml/srs/epsg.xml#25832">
          <gml:polygonMember>
            <gml:Polygon>
              <gml:outerBoundaryIs>
                <gml:LinearRing>
                  <gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">579233.116,6230311.514 579291.053,6230270.584 579294.242,6230268.331 579303.266,6230261.921 579300.381,6230256.389 579296.881,6230251.054 579295.054,6230248.014 579278.595,6230223.201 579270.717,6230212.639 579255.834,6230193.4 579247.073,6230183.514 579226.275,6230162.368 579216.71,6230153.32 579202.236,6230141.167 579201.279,6230139.464 579201.112,6230138.951 579200.678,6230137.607 579200.456,6230135.666 579200.519,6230134.935 579200.623,6230133.719 579200.858,6230132.922 579201.174,6230131.845 579202.084,6230130.117 579203.775,6230128.071 579205.663,6230126.207 579199.648,6230119.86 579178.097,6230105.141 579175.254,6230103.196 579159.193,6230092.116 579142.818,6230080.887 579126.129,6230069.443 579109.827,6230058.263 579093.172,6230046.842 579076.953,6230035.719 579060.309,6230024.306 579043.896,6230013.05 579030.354,6230003.764 579028.935,6229998.792 579021.048,6230011.025 579000.972,6230042.236 579007.642,6230045.147 579034.517,6230067.679 579054.568,6230085.78 579073.983,6230102.837 579095.229,6230122.064 579119.05,6230147.186 579127.218,6230155.721 579134.834,6230164.019 579148.782,6230180.411 579158.55,6230193.987 579167.811,6230207.124 579177.435,6230221.258 579186.579,6230234.988 579193.655,6230245.787 579205.15,6230263.431 579211.931,6230273.875 579212.901,6230275.364 579217.39,6230281.56 579225.887,6230297.009 579233.116,6230311.514</gml:coordinates>
                </gml:LinearRing>
              </gml:outerBoundaryIs>
            </gml:Polygon>
          </gml:polygonMember>
        </gml:MultiPolygon>
      </pdk:geometri>
    </pdk:akt_lokalplan_v>
  </gml:featureMember>
  <gml:featureMember>
    <pdk:akt_lokalplan_v fid="akt_lokalplan_v.110434">
      <pdk:planid>1087000</pdk:planid>
      <pdk:plantype>20.1</pdk:plantype>
      <pdk:plantypebesk>Lokalplaner</pdk:plantypebesk>
      <pdk:plannr>86</pdk:plannr>
      <pdk:plannavn>Centerområde ved Egå Havvej</pdk:plannavn>
      <pdk:komnr>751</pdk:komnr>
      <pdk:komnavn>Århus</pdk:komnavn>
      <pdk:geometri>
        <gml:MultiPolygon srsName="http://www.opengis.net/gml/srs/epsg.xml#25832">
          <gml:polygonMember>
            <gml:Polygon>
              <gml:outerBoundaryIs>
                <gml:LinearRing>
                  <gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">579484.365,6230380.556 579474.253,6230377.479 579455.322,6230339.783 579431.003,6230292.203 579397.309,6230223.287 579379.092,6230236.026 579316.161,6230280.039 579301.106,6230291.757 579291.053,6230270.583 579233.116,6230311.513 579244.145,6230331.917 579254.469,6230350.215 579258.087,6230355.715 579272.712,6230378.839 579292.128,6230420.763 579302.556,6230439.216 579304.226,6230438.181 579303.692,6230430.2 579309.289,6230427.675 579328.382,6230461.766 579350.361,6230454.009 579360.423,6230450.536 579370.366,6230446.736 579380.179,6230442.613 579389.852,6230438.17 579399.373,6230433.412 579408.734,6230428.345 579417.923,6230422.975 579422.676,6230420.072 579425.053,6230418.62 579432.068,6230414.085 579433.417,6230413.122 579458.145,6230397.315 579484.365,6230380.556</gml:coordinates>
                </gml:LinearRing>
              </gml:outerBoundaryIs>
            </gml:Polygon>
          </gml:polygonMember>
        </gml:MultiPolygon>
      </pdk:geometri>
    </pdk:akt_lokalplan_v>
  </gml:featureMember>
</wfs:FeatureCollection>
Avatar billede arne_v Ekspert
01. januar 2009 - 19:44 #1
Du skal bruge en namespace manager !

Lad mig lige bixe et eksempel.
Avatar billede pjen2004 Nybegynder
01. januar 2009 - 19:44 #2
Sætter lige koden ind igen - da den så lidt mærkelig ud...



Private Sub Form_Load()


  Dim objDoc As MSXML2.DOMDocument40
  Dim objNodeList As MSXML2.IXMLDOMNodeList
  Dim objNode As MSXML2.IXMLDOMNode
       
  Set objDoc = New MSXML2.DOMDocument40
 

  If objDoc.Load("C:\VB\WFS1\Node_test\wfs.xml") Then
    If Not objDoc Is Nothing Then
      Set objNodeList = objDoc.selectNodes("wfs_FeatureCollection/gml_featureMember/pdk_akt_lokalplan_v/pdk_planid")
           
      If Not objNodeList Is Nothing Then
        'Loop though each node in the node list
        For Each objNode In objNodeList
          MsgBox objNode.Text
        Next
      End If
   
    End If
  End If
 

End
 
End Sub
Avatar billede arne_v Ekspert
01. januar 2009 - 19:54 #3
Dim doc As XmlDocument = New XmlDocument()
        doc.Load("C:\z.xml")
        Dim nsm As XmlNamespaceManager = New XmlNamespaceManager(doc.NameTable)
        nsm.AddNamespace("wfs", "http://www.opengis.net/wfs")
        nsm.AddNamespace("gml", "http://www.opengis.net/gml")
        nsm.AddNamespace("pdk", "http://wfs.plansystem.dk")
        For Each n As XmlNode In doc.SelectNodes("//wfs:FeatureCollection/gml:featureMember/pdk:akt_lokalplan_v/pdk:planid", nsm)
            ' process n
        Next
Avatar billede arne_v Ekspert
01. januar 2009 - 19:54 #4
Jeg bruger .NET XML klasser fremfor de gamle COM klasser !
Avatar billede pjen2004 Nybegynder
01. januar 2009 - 20:14 #5
Tak - MEN jeg bruger VB6.0 - beklager, kom til at sætte spørgsmålet ind under .NET... øv øv - intet fungerer tilsyneladende for mig i aften. Kan ovenstående bruges alligevel? Eller skal jeg lukke og oprette under VB?
Avatar billede pjen2004 Nybegynder
01. januar 2009 - 20:25 #6
Spørgsmål flyttet til:

http://www.eksperten.dk/spm/858210

(Jeg beklager!)
Avatar billede arne_v Ekspert
01. januar 2009 - 20:26 #7
Jeg kan muligvis godt konvertere det til VB6.

Teknikken er uden tvivl den samme.
Avatar billede pjen2004 Nybegynder
01. januar 2009 - 20:33 #8
Det vil være perfekt! Det er givet derfor at jeg ikke kan læse filen, som jeg gerne vil.
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