我有一个 XML 文件,它应该是我的手机联系人备份,我正在尝试创建一个 php 文件来仅检索分配了电话号码的联系人。该文件包含来自不同应用程序的联系人。
XML 具有以下元素:
<Contact>
<Id>5238</Id>
<GivenName>friend1</GivenName>
<FullName>friendA</FullName>
<CreateTime>0001-01-01T00:00:00+00:00</CreateTime>
<ModifyTime>0001-01-01T00:00:00+00:00</ModifyTime>
<Starred>false</Starred>
<AccountName>SIM</AccountName>
<AccountType>com.anddroid.contacts.sim</AccountType>
</Contact>
<PhoneNumbers>
<Id>53</Id>
<ContactId>1380</ContactId>
<Name>2</Name>
<Value>07123456789</Value>
<Primary>2</Primary>
</PhoneNumbers>
<Contact>
<Id>328</Id>
<FamilyName>tee</FamilyName>
<GivenName>friend2</GivenName>
<FullName>friend2 tee</FullName>
<CreateTime>0001-01-01T00:00:00+00:00</CreateTime>
<ModifyTime>0001-01-01T00:00:00+00:00</ModifyTime>
<Picture>18948</Picture>
<Starred>false</Starred>
<AccountName>xxxxxxx@hotmail.com</AccountName>
<AccountType>com.htc.socialnetwork.facebook</AccountType>
</Contact>
我想制作一个 php 文件,该文件将从联系人中检索 FullName,并从联系人/Id 与 PhoneNumbers/ContactId 匹配的 PhoneNumbers 中检索值。
我创建了这段代码:
<?php
$xml = simplexml_load_file("Contact.xml");
$i=0;
$k=0;
foreach ($xml->Contact as $contact) {
if ($contact->AccountName == "SIM"){
echo "Contact: " . $k . "<br /> "; echo $contact->nodeValue[$k] . "<br /> " . $contact->FullName . "<br /> ";
$k++;
}
}
foreach ($xml->PhoneNumbers as $number) {
echo "Contact: " . $i . "<br /> "; echo $number->Value . "<br /> ";
$i++;
}
?>
它输出 53 个联系人和 173 个号码。如果我不输入,if ($contact->AccountName == "SIM")
它会输出相同的数字,但会输出 700++ 个联系人。我只是想要一些帮助来生成一个函数或一些东西来只输出我已经有他们的电话号码的联系人。
任何帮助表示赞赏。
谢谢