我有下面的XML文档,我需要从中为每个节点获取他的子节点(<KA>/<kod>和<TPV>/lt;TPV>>…<A>)。为了更好地理解,以下是我需要的:
<KATU/KA/kod> | <KATU/TPV/TPVS/TN> | <KATU/TPV/TPVS/TSA/TS/A>
k11 | VP11 | 11
k21 | VP21 | 21
k31 | VP31 | 31
k32 | VP32 | 32
k33 | VP33 | 33
k41 | VP41 | 41
k41 | VP41 | 42
k41 | VP41 | 43
k51 | VP51 | 51
主要问题(例如,来自示例k41和他的41,42,43的值)是,我需要得到的节点不是子节点,而是按<KA><TPV><KA><TPV>。。。
所以我需要找到所有<A> 节点(<TPV><TPVS><TSA><KA>/<kod>
我希望你能理解我的问题,因为我的英语,我无法再描述它了。
感谢回复
这是我的XML:
<?xml version="1.0" encoding="utf-8" ?>
<PV>
<PRAV_VZTAHY>
<TYPPRA>
<TN>VP</TN>
</TYPPRA>
</PRAV_VZTAHY>
<OPRAV_SUBJEKT>
<CHAROS_KOD>1112</CHAROS_KOD>
<OPSUB_ADRESA>
<adresa>
<nazev_ulice>xxx</nazev_ulice>
</adresa>
</OPSUB_ADRESA>
</OPRAV_SUBJEKT>
<OKRESY>
<OKRES>
<nuts4>123456</nuts4>
<name>asdf</name>
</OKRES>
<OBCE>
<OBEC>
<kod>594580</kod>
<name>mn</name>
</OBEC>
<KATU>
<KA>
<kod>k11</kod>
<name>q11</name>
</KA>
<TPV>
<TPVS>
<TN>VP11</TN>
<TSA>
<TS>
<A>11</A>
</TS>
</TSA>
</TPVS>
</TPV>
</KATU>
</OBCE>
<OKRES>
<nuts4>46786</nuts4>
<name>qwer</name>
</OKRES>
<OBCE>
<OBEC>
<kod>525804</kod>
<name>mn</name>
</OBEC>
<KATU>
<KA>
<kod>k21</kod>
<name>q21</name>
</KA>
<TPV>
<TPVS>
<TN>VP21</TN>
<TSA>
<TS>
<A>21</A>
</TS>
</TSA>
</TPVS>
</TPV>
</KATU>
<OBEC>
<kod>540978</kod>
<name>mn</name>
</OBEC>
<KATU>
<KA>
<kod>k31</kod>
<name>q31</name>
</KA>
<TPV>
<TPVS>
<TN>VP31</TN>
<TSA>
<TS>
<A>31</A>
</TS>
</TSA>
</TPVS>
</TPV>
<KA>
<kod>k32</kod>
<name>q32</name>
</KA>
<TPV>
<TPVS>
<TN>VP32</TN>
<TSA>
<TS>
<A>32</A>
</TS>
</TSA>
</TPVS>
</TPV>
<KA>
<kod>k33</kod>
<name>q33</name>
</KA>
<TPV>
<TPVS>
<TN>VP33</TN>
<TSA>
<TS>
<A>33</A>
</TS>
</TSA>
</TPVS>
</TPV>
</KATU>
<OBEC>
<kod>541265</kod>
<name>mn</name>
</OBEC>
<KATU>
<KA>
<kod>k41</kod>
<name>q41</name>
</KA>
<TPV>
<TPVS>
<TN>VP41</TN>
<TSA>
<TS>
<A>41</A>
</TS>
<TS>
<A>42</A>
</TS>
<TS>
<A>43</A>
</TS>
</TSA>
</TPVS>
</TPV>
</KATU>
<OBEC>
<kod>553387</kod>
<name>mn</name>
</OBEC>
<KATU>
<KA>
<kod>k51</kod>
<name>q51</name>
</KA>
<TPV>
<TPVS>
<TN>VP51</TN>
<TSA>
<TS>
<A>51</A>
</TS>
</TSA>
</TPVS>
</TPV>
</KATU>
</OBCE>
</OKRESY>
</PV>
这是我的开始:
foreach ($xml->xpath("//KATU") as $ku) {
print_r($ku);
print "<hr />";
}
您需要读取每个节点,并检查该节点是否有子节点。然后循环通过它们。这里有一个链接到stackoverflow问题,我想它会回答你的问题。
或者你也可以检查这个和这个链接。查看其中人员的评论。
我希望你们能从这些链接中找到答案。