Xml 从特定父元素读取某些子元素
示例XMLXml 从特定父元素读取某些子元素,xml,vb.net,parent-child,Xml,Vb.net,Parent Child,示例XML <root> <cmdset>Set 1 <comment>Comment 1 here.</comment> <cmd>Command 1</cmd> <cmd>Command 2</cmd> </cmdset> <cmdset>Set 2 <comment>Comment 2 here.</com
<root>
<cmdset>Set 1
<comment>Comment 1 here.</comment>
<cmd>Command 1</cmd>
<cmd>Command 2</cmd>
</cmdset>
<cmdset>Set 2
<comment>Comment 2 here.</comment>
<cmd>Command 3</cmd>
<cmd>Command 4</cmd>
</cmdset>
</root>
哪个输出到列表框
Set 1
Set 2
现在,我希望能够处理特定
元素中的某些子元素,仅处理本例中的
元素,而不是
元素。因此,如果在列表框中选择了Set 1,我只想处理文本“Command 1”和“Command 2”
有人告诉我,给元素一个ID或名称会让事情变得更简单,但我希望尽可能避免这种情况,因为我希望最终用户可以编辑XML(有时不是很专业),所以我尽量让事情简单
我尝试过各种不同的想法,但都没有用,我是XML新手(从SO获得了填充列表框的代码),所以如果到目前为止我所做的任何事情都是不好的做法,请大声说出来。是的,如果您正在查看的值位于属性或子元素中,那么这样做会更容易,但仍然可以这样做。这将遍历包含文本
Set 1
的cmdset
的所有cmd
值:
将每个节点作为doc.SelectNodes中的XmlNode(//cmdset[normalize space(text())='Set 1']/cmd)
作为字符串的Dim值=node.InnerText
' ...
下一个
方括号建立了一个条件,因此只包括该条件为真的元素。normalize space
函数对于从本质上修剪文本以去除文本后面的新行是必需的
不过,从你的问题来看,这有点不清楚,如果这正是你要问的。如果已经有对所需父元素的引用,则可以简单地执行以下操作:
Dim cmdsetElement作为XmlElement=”。。。
将每个节点作为cmdsetElement中的XmlNode。选择节点(“cmd”)
作为字符串的Dim值=node.InnerText
' ...
下一个
是的,如果您正在查看的值位于属性或子元素中,则执行此操作会更容易,但仍然可以执行此操作。这将遍历包含文本Set 1
的cmdset
的所有cmd
值:
将每个节点作为doc.SelectNodes中的XmlNode(//cmdset[normalize space(text())='Set 1']/cmd)
作为字符串的Dim值=node.InnerText
' ...
下一个
方括号建立了一个条件,因此只包括该条件为真的元素。normalize space
函数对于从本质上修剪文本以去除文本后面的新行是必需的
不过,从你的问题来看,这有点不清楚,如果这正是你要问的。如果已经有对所需父元素的引用,则可以简单地执行以下操作:
Dim cmdsetElement作为XmlElement=”。。。
将每个节点作为cmdsetElement中的XmlNode。选择节点(“cmd”)
作为字符串的Dim值=node.InnerText
' ...
下一个
那么你想让它使用text()=“设置1
作为条件?那么你想让它使用text()=“设置1
作为条件?现在全部排序,谢谢。你正在成为这里一张熟悉的面孔。我想你已经回答了我最后两三个问题了。谢谢现在都整理好了,谢谢。你正在成为这里一张熟悉的面孔。我想你已经回答了我最后两三个问题了。谢谢
Set 1
Set 2