【发布时间】:2010-08-18 11:09:03
【问题描述】:
您好我试图在 php 中使用 simplexml 解析 xml 提要。 xml 提要的布局如下:
<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 数据库中。所以理想情况下,我想在数据库中的一行中输入这一切。 xml 提要包含不同的成员类型,例如“完整”或“关联”。
目前我正在尝试遍历所有正式成员,并获取该特定成员的所有数据。每个成员的数据分为三个部分,每个部分都有一个单独的成员标签,所以上面的 Ted Bloggs 有三个成员标签中的数据,其中 Datatype 是 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)的所有数据放入数据库中的一行。
【问题讨论】: