【发布时间】:2017-09-01 04:49:47
【问题描述】:
我需要你的帮助才能从根到叶的所有(完整)路径列表下方的 XML 中获取。
<List>
<V ID="1">
<F>
<N>10</N>
<M>10</M>
<A>
<IDX>19</IDX>
</A>
</F>
<F>
<N>20</N>
<M>20</M>
<A>
<IDX>21</IDX>
</A>
</F>
</V>
<V ID="2">
<F>
<N>100</N>
<M>100</M>
<A>
<IDX>50</IDX>
</A>
</F>
<F>
<N>21</N>
<M>120</M>
<A>
<IDX>33</IDX>
</A>
</F>
</V>
<V ID="3">
<F>
<N>200</N>
<M>300</M>
<A>
<IDX>99</IDX>
</A>
</F>
<F>
<N>44</N>
<M>55</M>
<A>
<IDX>64</IDX>
</A>
</F>
</V>
</List>
我想要类似的:
<V ID="1"><F><N>10</N><M>10</M><A><IDX>19</IDX>
<V ID="1"><F><N>20</N><M>20</M><A><IDX>21</IDX>
<V ID="2"><F><N>100</N><M>100</M><A><IDX>50</IDX>
<V ID="2"><F><N>21</N><M>120</M><A><IDX>33</IDX>
<V ID="3"><F><N>200</N><M>300</M><A><IDX>99</IDX>
<V ID="3"><F><N>44</N><M>55</M><A><IDX>64</IDX>
使用下面的 PHP 代码我没有得到我需要的东西,我错在哪里?有人可以推荐吗?
$test1 = new SimpleXMLElement($testq);
foreach ($test1->xpath('//V') as $value) {
echo $value["ID"]." - ";
foreach ($test1->xpath('//V[@ID="'.$value["ID"].'"]/F') as $valueF) {
echo $valueF->N." - ";
echo $valueF->M." - ";
foreach ($test1->xpath('//V[@ID="'.$value["ID"].'"]/F/A') as $valueA) {
echo $valueA->IDX." - <BR>";
}
}
}
非常感谢 麦芽酒
【问题讨论】:
-
也许我不明白,但是:你为什么不直接使用正则表达式?
-
我想调查一下我们使用 XML xpath 导航的可能性...我的目标是获得以下列表 1 - 10 - 10 - 19 1 - 20 - 20 - 21 2 - 100 - 100 - 50 2 - 21 - 120 - 33 3 - 200 - 300 - 99 3 - 44 - 55 - 64