从返回的 XML 字符串中获取属性
Get attributes from a returned XML string
我正在尝试获取从调用 CEBroker WebServices 返回的 XML 字符串,例如:
<licensees>
<licensee valid="true" State="FL" licensee_profession="RN"
licensee_number="2676612" state_license_format="" first_name="HENRY" last_name="GEITER" ErrorCode="" Message="" TimeStamp="2/18/2022 6:43:20 PM" />
</licensees>
并解析字符串以获取属性值,因为它们始终相同,并且每个字符串只有一个被许可人。 XML 字符串在 $xmlresponse 中返回,当我使用 print_r 打印出来时它是正确的,但是当我尝试解析时,我总是什么也得不到。
我试过了
$xml_string = simplexml_load_string($xmlresponse);
print_r ("this is my xml after going through simplexml_load_string" . $xml_string);
//上面一行没有为$xml_string;
打印任何内容
$json = json_encode($xml_string);
print_r($json);
$array = json_decode($json,TRUE);
echo "<p>Array contents are as follows</p>";
print_r($array);
var_dump ($array);
echo "<p>Array contents ended!</p>";
我是 XML 的新手,只需要知道如何解析节点,在本例中是属性,用于返回的 XML 数据或 XML 文件。
谢谢
如果我对你的问题的理解正确,请尝试以下方法,假设有两个被许可人的回应:
$xmlresponse = '
<licensees>
<licensee valid="true" State="FL" licensee_profession="RN" licensee_number="2676612" state_license_format="" first_name="HENRY" last_name="GEITER" ErrorCode="" Message="" TimeStamp="2/18/2022 6:43:20 PM" />
<licensee valid="false" State="NY" licensee_profession="DC" licensee_number="1234" state_license_format="" first_name="JOHN" last_name="DOE" ErrorCode="" Message="" TimeStamp="1/1/2023 6:43:20 PM" />
</licensees>
';
$xml_string = simplexml_load_string($xmlresponse);
$licensees = $xml_string->xpath("//licensee");
foreach ($licensees as $licensee) {
foreach ($licensee ->xpath('./@*') as $attribute){
echo $attribute." ";
}
echo "\n";
}
输出:
true FL RN 2676612 HENRY GEITER 2/18/2022 6:43:20 PM
false NY DC 1234 JOHN DOE 1/1/2023 6:43:20 PM
输出
我正在尝试获取从调用 CEBroker WebServices 返回的 XML 字符串,例如:
<licensees>
<licensee valid="true" State="FL" licensee_profession="RN"
licensee_number="2676612" state_license_format="" first_name="HENRY" last_name="GEITER" ErrorCode="" Message="" TimeStamp="2/18/2022 6:43:20 PM" />
</licensees>
并解析字符串以获取属性值,因为它们始终相同,并且每个字符串只有一个被许可人。 XML 字符串在 $xmlresponse 中返回,当我使用 print_r 打印出来时它是正确的,但是当我尝试解析时,我总是什么也得不到。
我试过了
$xml_string = simplexml_load_string($xmlresponse);
print_r ("this is my xml after going through simplexml_load_string" . $xml_string);
//上面一行没有为$xml_string;
打印任何内容$json = json_encode($xml_string);
print_r($json);
$array = json_decode($json,TRUE);
echo "<p>Array contents are as follows</p>";
print_r($array);
var_dump ($array);
echo "<p>Array contents ended!</p>";
我是 XML 的新手,只需要知道如何解析节点,在本例中是属性,用于返回的 XML 数据或 XML 文件。
谢谢
如果我对你的问题的理解正确,请尝试以下方法,假设有两个被许可人的回应:
$xmlresponse = '
<licensees>
<licensee valid="true" State="FL" licensee_profession="RN" licensee_number="2676612" state_license_format="" first_name="HENRY" last_name="GEITER" ErrorCode="" Message="" TimeStamp="2/18/2022 6:43:20 PM" />
<licensee valid="false" State="NY" licensee_profession="DC" licensee_number="1234" state_license_format="" first_name="JOHN" last_name="DOE" ErrorCode="" Message="" TimeStamp="1/1/2023 6:43:20 PM" />
</licensees>
';
$xml_string = simplexml_load_string($xmlresponse);
$licensees = $xml_string->xpath("//licensee");
foreach ($licensees as $licensee) {
foreach ($licensee ->xpath('./@*') as $attribute){
echo $attribute." ";
}
echo "\n";
}
输出:
true FL RN 2676612 HENRY GEITER 2/18/2022 6:43:20 PM
false NY DC 1234 JOHN DOE 1/1/2023 6:43:20 PM
输出