在 simplexml_load_string 中获取属性
getting attributes in simplexml_load_string
下面是我用来将 xml 转换为数组
的函数
$xml = '<xml><CodeshareInfo OperatingCarrier="EY" OperatingFlightNumber="269">ETIHAD AIRWAYS</CodeshareInfo></xml>';
$obj = simplexml_load_string($xml); // Parse XML
$obj->registerXPathNamespace("soap", "http://www.w3.org/2003/05/soap-envelope");
$array = json_decode(json_encode($obj), true); // Convert to array
当我尝试使用父节点时 "xml"
<xml><CodeshareInfo OperatingCarrier="EY" OperatingFlightNumber="269">ETIHAD AIRWAYS</CodeshareInfo></xml>
我得到这个结果
Array
(
[CodeshareInfo] => ETIHAD AIRWAYS
)
但是如果我在没有父节点的情况下尝试 "xml"
<CodeshareInfo OperatingCarrier="EY" OperatingFlightNumber="269">ETIHAD AIRWAYS</CodeshareInfo>
我可以得到属性和值
Array
(
[@attributes] => Array
(
[OperatingCarrier] => EY
[OperatingFlightNumber] => 269
)
[0] => ETIHAD AIRWAYS
)
我应该更改代码以获得带有属性和值的输出,因为我的 xml 数据来自 soap 请求,一旦我收到,我将转换为数组以访问其值和属性。
鉴于提供的 XML 您可以遍历它并提取属性和值。
<?php
$xml = '<xml><CodeshareInfo OperatingCarrier="EY" OperatingFlightNumber="269">ETIHAD AIRWAYS</CodeshareInfo></xml>';
$obj = simplexml_load_string($xml); // Parse XML
$obj->registerXPathNamespace("soap", "http://www.w3.org/2003/05/soap-envelope");
foreach($obj as $ob) {
echo $ob['OperatingCarrier'] . "\n";
echo $ob . "\n";
echo $ob['OperatingFlightNumber'] . "\n";
}
输出:
EY
ETIHAD AIRWAYS
269
下面是我用来将 xml 转换为数组
的函数$xml = '<xml><CodeshareInfo OperatingCarrier="EY" OperatingFlightNumber="269">ETIHAD AIRWAYS</CodeshareInfo></xml>';
$obj = simplexml_load_string($xml); // Parse XML
$obj->registerXPathNamespace("soap", "http://www.w3.org/2003/05/soap-envelope");
$array = json_decode(json_encode($obj), true); // Convert to array
当我尝试使用父节点时 "xml"
<xml><CodeshareInfo OperatingCarrier="EY" OperatingFlightNumber="269">ETIHAD AIRWAYS</CodeshareInfo></xml>
我得到这个结果
Array
(
[CodeshareInfo] => ETIHAD AIRWAYS
)
但是如果我在没有父节点的情况下尝试 "xml"
<CodeshareInfo OperatingCarrier="EY" OperatingFlightNumber="269">ETIHAD AIRWAYS</CodeshareInfo>
我可以得到属性和值
Array
(
[@attributes] => Array
(
[OperatingCarrier] => EY
[OperatingFlightNumber] => 269
)
[0] => ETIHAD AIRWAYS
)
我应该更改代码以获得带有属性和值的输出,因为我的 xml 数据来自 soap 请求,一旦我收到,我将转换为数组以访问其值和属性。
鉴于提供的 XML 您可以遍历它并提取属性和值。
<?php
$xml = '<xml><CodeshareInfo OperatingCarrier="EY" OperatingFlightNumber="269">ETIHAD AIRWAYS</CodeshareInfo></xml>';
$obj = simplexml_load_string($xml); // Parse XML
$obj->registerXPathNamespace("soap", "http://www.w3.org/2003/05/soap-envelope");
foreach($obj as $ob) {
echo $ob['OperatingCarrier'] . "\n";
echo $ob . "\n";
echo $ob['OperatingFlightNumber'] . "\n";
}
输出:
EY
ETIHAD AIRWAYS
269