Avatar billede pjen2004 Nybegynder
14. januar 2009 - 21:17 Der er 4 kommentarer

XML getElementsByTagName

Følgende er et udklip af en XML-fil:

<?xml version="1.0" encoding="UTF-8"?>
<ogcwfs:FeatureCollection>
  <gml:boundedBy>
    <gml:null>unavailable</gml:null>
  </gml:boundedBy>

  <gml:featureMember>
    <au1:STR_BSK xmlns:au1="http://schemas.kms.dk/wfs" fid="STR_BSK.441">
     
      <au1:GEOMETRI>
        <gml:Polygon srsName="EPSG:25832">
          <gml:outerBoundaryIs>
            <gml:LinearRing srsName="EPSG:25832">
              <gml:coordinates>595888.6009345795,6184167.826168224</gml:coordinates>
            </gml:LinearRing>
          </gml:outerBoundaryIs>
        </gml:Polygon>
      </au1:GEOMETRI>
     
      <au1:ID>122</au1:ID>
      <au1:OBJEKTKODE>2960.0</au1:OBJEKTKODE>
      <au1:OBJEKTTYPE>Strandbeskyttelseszone</au1:OBJEKTTYPE>     
    </au1:STR_BSK>
  </gml:featureMember>




  <gml:featureMember>
    <au1:STR_BSK xmlns:au1="http://schemas.kms.dk/wfs" fid="STR_BSK.121">
      <au1:GEOMETRI>

        <gml:MultiPolygon srsName="EPSG:25832">

          <gml:polygonMember>
            <gml:Polygon srsName="EPSG:25832">

              <gml:outerBoundaryIs>
                <gml:LinearRing srsName="EPSG:25832">
                  <gml:coordinates>594861.0224299065,6204218.476168225</gml:coordinates>
                </gml:LinearRing>
              </gml:outerBoundaryIs>
              <gml:innerBoundaryIs>
                <gml:LinearRing srsName="EPSG:25832">
                  <gml:coordinates>602537.3738317757,6187357.276635514</gml:coordinates>
                </gml:LinearRing>
              </gml:innerBoundaryIs>

            </gml:Polygon>
          </gml:polygonMember>


          <gml:polygonMember>
            <gml:Polygon srsName="EPSG:25832">
              <gml:outerBoundaryIs>
                <gml:LinearRing srsName="EPSG:25832">
                  <gml:coordinates>609103.0280373832,6201687.612149533</gml:coordinates>
                </gml:LinearRing>
              </gml:outerBoundaryIs>
            </gml:Polygon>
          </gml:polygonMember>


       
        </gml:MultiPolygon>
       
      </au1:GEOMETRI>
      <au1:ID>121</au1:ID>
      <au1:OBJEKTKODE>2960.0</au1:OBJEKTKODE>
      <au1:OBJEKTTYPE>Strandbeskyttelseszone</au1:OBJEKTTYPE>
    </au1:STR_BSK>
  </gml:featureMember>
 
 
</ogcwfs:FeatureCollection>


Jeg har brug for at finde hver node, der indeholder værdier under <gml:coordinates>. Til det bruger jeg "getElementsByTagName" og det virker alt sammen fint. Problem: Når jeg stepper igennem noderne - har jeg brug for - hver gang jeg har fat i en node - at kunne se hvilken "overnode" en <gml:coordinates> hænger på. Altså hvilken <au1:STR_BSK> jeg har fat i. Hvert enkelt objekt/featuremember har nemlig egne egenskabsdata tilknyttet - bl.a. værdien under <au1:ID>.

Altså hver gang jeg har fat i en samling af data under <gml:coordinates> skal jeg bruger de tilhørende værdier under <au1:ID>. Hvordan går man det? (Jeg har også prøvet at bruge "selectSingleNode" og så pege ned den vej - men der kan jeg ikke finde ud af at få søgt ned til <<gml:coordinates> uden at skulle angive den fulde sti derned - og den kan jo være forskellig fra objekt til objekt.)

Håber nogen kan hjælpe.
Avatar billede arne_v Ekspert
15. januar 2009 - 04:05 #1
En node har en property ParentNode som vil give dig "overnode".
Avatar billede arne_v Ekspert
19. januar 2009 - 01:47 #2
pjen ?
Avatar billede pjen2004 Nybegynder
19. januar 2009 - 20:04 #3
Jeg er godt bekendt med ParentNode - men jeg havde måske forventet et lidt mere uddybet svar...

Jeg har efter lang tid fået en løkke til at virke, hvor der hele tiden steppes tilbage til "overnoden" som sammenlignes med en fast givet værdi.

Hvis du sender et svar - skal du nok få points.
Avatar billede arne_v Ekspert
06. december 2009 - 04:23 #4
svar
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