嗨我試圖解析一個xml提要在php中使用simplexml。 XML供稿佈局爲如下:使用SimpleXML循環通過多個條目
<Member>
<MemberType>Full</MemberType>
<JoinDate>2010-06-12</JoinDate>
<DataType>A</DataType>
<Data>
<FirstName>Ted</FirstName>
<LasttName>Smith</LasttName>
<Data1>56</Data1>
<Data2>100</Data2>
<Data3>120</Data3>
</Data>
</Member>
<Member>
<MemberType>Full</MemberType>
<JoinDate>2010-06-12</JoinDate>
<DataType>B</DataType>
<Data>
<FirstName>Ted</FirstName>
<LasttName>Smith</LasttName>
<Data1>57</Data1>
<Data2>110</Data2>
<Data3>130</Data3>
</Data>
</Member>
<Member>
<MemberType>Full</MemberType>
<JoinDate>2010-06-12</JoinDate>
<DataType>C</DataType>
<Data>
<FirstName>Ted</FirstName>
<LasttName>Smith</LasttName>
<Data4>58</Data4>
<Data5>115</Data5>
<Data6>230</Data6>
</Data>
</Member>
其中該構件元件循環一遍又一遍在XML文檔,但是數據內它的變化。我試圖做的是將某些成員的所有數據輸入到sql數據庫中。所以理想情況下,我想在db中的所有行中輸入。 xml提要包含不同的成員類型,如「完整」或「關聯」。
目前我正試圖循環所有正式成員,並獲取此特定成員的所有數據。每個成員的數據被分成每個具有一個獨立的構件標籤三個部分,所以上述泰德布羅格斯在三個部件的標籤,其中,數據類型爲A,B和C
$PLF = simplexml_load_file('../XML/Members.xml');
foreach ($PLF->Root->xpath('//Member') as $member) {
if ($member->MemberType == 'Full') {
echo $member->MemberType.'<br/>';
echo $member->JoinDate.'<br />';
echo $member->DataType.'<br/>';
echo $member->Data->FirstName.'<br/>';
echo $member->Data->LastName.'<br/>';
echo $member->Data->Data1.'<br/>';
echo $member->Data->Data2.'<br/>';
echo '<br />';
}}
代碼我有在有數據時刻只能從每個循環中的第一個類型(類型A)中提取數據,而且我真的想要將所有類型A,B和C合併到同一個循環中。因此,我可以將每個成員(如Ted Smith)的所有數據都集中到數據庫中的一行中。