gpt4 book ai didi

xml - tcl dom 以列表形式获取属性

转载 作者:行者123 更新时间:2023-12-02 01:38:11 25 4
gpt4 key购买 nike

<Testcases>
<Testcase tc_name="tc1">
<Parameters>
<Input_Arguments>tc1_arg1</Input_Arguments>
<Input_Arguments>tc2_arg2</Input_Arguments>
</Parameters>
</Testcase>
<Testcase tc_name="tc2">
<Parameters>
<Input_Arguments>tc2_arg1</Input_Arguments>
<Input_Arguments>tc2_arg2</Input_Arguments>
</Parameters>
</Testcase>
</Testcases>

上面是我的 xml,我想使用 tdom 首先将所有“tc_name”属性作为 tcl 列表读取。然后使用列表中的每个 tc_name 来定位相应的参数。请告诉我该怎么做,谢谢!

最佳答案

您的标题说 tcl dom,但您的问题说 tdom,并且它被标记为 tdom,所以我将采用多数决定并给出 tdom 答案 - 它们是不同的软件包!

首先您需要解析原始 xml

# Assumes that xmlText holds your raw XML
dom parse $xmlText doc

现在获取 tc_name 节点的列表

set nodes [$doc selectNodes {Testcases/Testcase[@tc_name]}

现在循环访问参数节点的那些节点

foreach node $nodes {
set params [$node selectNodes Parameters]
foreach param $params {
# Do some stuff
}
}

使用完文档后,请不要忘记将其删除。 (请注意,如果您在过程中执行此操作,则当过程退出时,这将自动发生。)

$doc delete

我不完全确定你最终想要做什么,所以这里有一些代码来输出每个参数及其 tc_name,每行一个:

dom parse {<Testcases>
<Testcase tc_name="tc1">
<Parameters>
<Input_Arguments>tc1_arg1</Input_Arguments>
<Input_Arguments>tc2_arg2</Input_Arguments>
</Parameters>
</Testcase>
<Testcase tc_name="tc2">
<Parameters>
<Input_Arguments>tc2_arg1</Input_Arguments>
<Input_Arguments>tc2_arg2</Input_Arguments>
</Parameters>
</Testcase>
</Testcases>
} doc
foreach testcase [$doc selectNodes Testcases/Testcase] {
set name [$testcase getAttribute tc_name]
foreach arg [$testcase selectNodes Parameters/Input_Arguments] {
foreach child [$arg childNodes] {
puts stdout $name\ [$child nodeValue]
}
}
}
$doc delete; # Tidy away the parsed document

我希望这能为您提供足够的指导,帮助您完成任务

关于xml - tcl dom 以列表形式获取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23953361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com