2016-06-01 10 views
0

Ich habe die Aufgabe der Arbeit an einer klassischen ASP-Site und müssen die folgenden Informationen in einer Schleife auslesen.XML Parent Node Suche mit klassischen ASP

XML:

<rows> 
    <row id='3'> 
     <cell>3-1</cell> 
     <cell>3-2</cell> 
     <cell>3-3</cell> 
     <cell>3-4</cell> 
     <row id='2'> 
      <cell>2-1</cell> 
      <cell>2-2</cell> 
      <cell>2-3</cell> 
      <cell></cell> 
     </row> 
     <row id='A'> 
      <cell>A-1</cell> 
      <cell>A-2</cell> 
      <cell>A-3</cell> 
      <cell>A-4</cell> 
     </row> 
    </row> 
    <row id='7'> 
     <cell>ABC</cell> 
     <cell>3</cell> 
     <cell>0</cell> 
     <cell></cell> 
    </row> 
    <row id='B'> 
     <cell>B-1</cell> 
     <cell>B-2</cell> 
     <cell>B-3</cell> 
     <cell>B-4</cell> 
     <row id='B-1'> 
      <cell>B-1-1</cell> 
      <cell>B-2-2</cell> 
      <cell>B-3-3</cell> 
      <cell>B-4-4</cell> 
      <row id='B-1-1'> 
       <cell>B-1-1</cell> 
       <cell>B-2-2</cell> 
       <cell>B-3-3</cell> 
       <cell>B-4-4</cell> 
      </row> 
     </row> 
    </row> 
</rows> 

Gewünschtes Ergebnis:

PID:/ID : 3/3-1/3-2/3-3/3-4/ 
PID: 3/ ID : 2/2-1/2-2/2-3// 
PID: 3/ ID : A/A-1/A-2/A-3/A-4/ 
PID:/ID : 7/ABC/3/0// 
PID:/ID : B/B-1/B-2/B-3/B-4/ 
PID: B/ ID : B-1/B-1-1/B-2-2/B-3-3/B-4-4/ 
PID: B-1/ ID : B-1-1/B-1-1/B-2-2/B-3-3/B-4-4/ 

klassischen ASP-Code:

Set Nodes = oDOM.getElementsByTagName("row") 

For each Subnodes in Nodes 

    Response.Write("PID : " + ?????? + "/") 
    Response.Write("ID : " + CStr(SubNodes.getElementsByTagName("cell")(0).parentNode.Attributes(0).Text) + "/") 

    Response.Write(SubNodes.getElementsByTagName("cell")(0).Text + "/") 
    Response.Write(SubNodes.getElementsByTagName("cell")(1).Text + "/") 
    Response.Write(SubNodes.getElementsByTagName("cell")(2).Text + "/") 
    Response.Write(SubNodes.getElementsByTagName("cell")(3).Text + "/") 
    Response.WRite("<br>") 
Next 

Ich hoffe, dass die Eltern-ID zu bekommen, aber Nodes.parentNode funktioniert nicht. Wie kann ich die Eltern ID bekommen? Danke im Voraus.

Antwort

0

Die Variable Subnodes enthält bereits die gewünschte "Zeile", daher sollte SubNodes.Attributes(0).Text die Zeilen-ID ergeben.

Ich würde auch raten SubNodes.getElementsByTagName("cell") nur einmal auszuführen (pro Zeile natürlich) und das Ergebnis in einer Variablen, die Sie dann als ein Array zugreifen können, etwa so:

set cells = SubNodes.getElementsByTagName("cell") 

Response.Write(cells(0).Text + "/") 
Response.Write(cells(1).Text + "/") 
Response.Write(cells(2).Text + "/") 
Response.Write(cells(3).Text + "/") 

Ansonsten für Sie suchen Alle Unterzellen im DOM für jedes von Ihnen verwendete Element.