解析XML文件 - 无法获取所有元素

时间:2015-08-22 18:02:24

标签: xml parsing xpath xml-parsing

我有XML

我需要同时获得test_set_nametest_case_name,换句话说,我需要3 test_case_name,但也需要相应的test_set_name。我需要使用xPath,但我只能得到一个元素。

导入是在drupal网站上进行的,但我认为这个问题与Drupal本身无关。我使用一个模块进行解析,询问我Context以及我想要的所有字段。我尝试/report/test_sets作为Context但我只得到每个test_set的第一个test_case_name。

我必须分两步完成吗?

我想获取这些数据(2 test_set和3 test_case):

xpathparser:0 :
<test_set_name tl_label="Name" tl_name="name" tl_physicalname="CY_CYCLE">GUI.00 Launch Applications</test_set_name>
<test_set_name tl_label="Name" tl_name="name" tl_physicalname="CY_CYCLE">GUI.02 EM NE.000 EM NE Generic.Generic EM NE tests</test_set_name>
xpathparser:1 :
<test_case_name tp_label="Test Name" tp_name="name" tp_physicalname="TS_NAME">Launch TNMS</test_case_name>
<test_case_name tp_label="Test Name" tp_name="name" tp_physicalname="TS_NAME">Open</test_case_name>
<test_case_name tp_label="Test Name" tp_name="name" tp_physicalname="TS_NAME">ManualNetworkScan</test_case_name>

我在Drupal中使用Feeds模块。这是xPath分析器设置: enter image description here

1 个答案:

答案 0 :(得分:0)

XPath有一个&#34; union&#34;运算符|,可以有效地组合两个表达式的结果。

以下XPath表达式将选择文档中的所有test_set_name和所有test_case_name元素:

//test_set_name|//test_case_name

鉴于问题中目前提供的信息,这是任何人都可以提供的帮助。

这是否适用于您正在使用的未命名模块,以及如何从这些节点中检索所需数据并对其进行有效排列,我无从知晓。我也不知道&#34; context&#34;和&#34;字段&#34;在这种情况下(XPath表达式是针对&#34; context&#34;,这是一个特定的XML节点,但你的问题暗示上下文本身就是一个XPath表达式,意味着其他一些含义)。