使用经典ASP进行XML父节点搜索

时间:2016-06-01 05:56:15

标签: xml asp-classic

我已经完成了在经典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>

通缉结果:

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/

经典ASP代码:

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

我希望获得父ID,但Nodes.parentNode不起作用。我怎样才能得到父母的身份?提前谢谢。

1 个答案:

答案 0 :(得分:0)

变量Subnodes已包含您想要的“行”,因此SubNodes.Attributes(0).Text应生成行ID。

我还建议只执行SubNodes.getElementsByTagName("cell")一次(显然每行)并将结果存储在一个变量中,然后您可以将其作为数组访问,如下所示:

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 + "/")

否则,您正在搜索DOM中所有正在使用的项目的子单元格。