【发布时间】:2021-03-01 22:04:12
【问题描述】:
我正在修改现有的 VB.NET 代码,我希望尽可能少地更改它,因为它可以工作。
它当前读取的 XML 结构类似于;
<?xml version="1.0" encoding="utf-8"?>
<RootNode>
<ParentNode>
<Item ID="A">value</Item>
<Item ID="B">value</Item>
<Item ID="C">value</Item>
<ChildNode>
<Item ID="CX">value</Item>
<Item ID="CY">value</Item>
<Item ID="CZ">value</Item>
<Item ID="CN">value</Item>
</ChildNode>
<ChildNode>
<Item ID="CX">value</Item>
<Item ID="CY">value</Item>
<Item ID="CZ">value</Item>
<Item ID="CN">value</Item>
</ChildNode>
</ParentNode>
<RootNode>
现有代码使用 XMLReader 循环数据。有时,单个文件中的数据将包含数百兆字节,因此一次加载整个 XML 将是一个问题。虽然我的示例只显示了几个项目,但实际上每个子节点中可能有 100 多个项目。
当程序处理数据时,当它到达 ChildNode 时,它需要能够从
我不是 XML 专家,我很茫然。到目前为止,我所阅读的内容表明 XMLReader 是一种无法返回的单向阅读器。
编辑:
使用伪代码当前代码所做的是;
sub processChildNode
While true
Read XML
If in ChildNode then
doProcessChildNodeItem
else
exit while
end while
sub doProcessChildNodeItem
do stuff with current item
end sub
end sub
我希望它做的是;
sub processChildNode
tester = getChildNodeCNValue()
While true
Read XML
If in ChildNode then
doProcessChildNodeItem(tester)
else
exit while
end if
end while
sub doProcessChildNodeItem(tester)
do stuff with current item
if tester = "myvalue" then
Do other stuff with current item
end if
end sub
end sub
【问题讨论】: