I
I
Ilya Beloborodov2016-02-01 15:46:17
PHP
Ilya Beloborodov, 2016-02-01 15:46:17

Simplexml_load_string. How to get to the element?

I upload xml

$xml=simplexml_load_string('<?xml version="1.0" encoding="UTF-8"?>
<Item xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vmw="http://www.vmware.com/schema/ovf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vcloud="http://www.vmware.com/vcloud/v1.5" vcloud:href="https://vcloud.volia.com/api/vApp/vm-d9cbdcfd-44ef-449c-b727-2c992226b8a2/virtualHardwareSection/cpu" vcloud:type="application/vnd.vmware.vcloud.rasdItem+xml" xsi:schemaLocation="http://www.vmware.com/schema/ovf http://www.vmware.com/schema/ovf http://schemas.dmtf.org/ovf/envelope/1 http://schemas.dmtf.org/ovf/envelope/1/dsp8023_1.1.0.xsd http://www.vmware.com/vcloud/v1.5 http://vcloud.volia.com/api/v1.5/schema/master.xsd http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2.22.0/CIM_ResourceAllocationSettingData.xsd">
    <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>
    <rasd:Description>Number of Virtual CPUs</rasd:Description>
    <rasd:ElementName>1 virtual CPU(s)</rasd:ElementName>
    <rasd:InstanceID>4</rasd:InstanceID>
    <rasd:Reservation>0</rasd:Reservation>
    <rasd:ResourceType>3</rasd:ResourceType>
    <rasd:VirtualQuantity>1</rasd:VirtualQuantity>
    <rasd:Weight>0</rasd:Weight>
    <vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
    <Link rel="edit" href="https://example.com/api/vApp/vm-d9cbdcfd-44ef-449c-b727-2c992226b8a2/virtualHardwareSection/cpu" type="application/vnd.vmware.vcloud.rasdItem+xml"/>
</Item>');

Then I vardump and see this:
SimpleXMLElement Object
(
    [Link] => SimpleXMLElement Object
        (
            [@attributes] => Array
                (
                    [rel] => edit
                    [href] => https://example.com/api/vApp/vm-d9cbdcfd-44ef-449c-b727-2c992226b8a2/virtualHardwareSection/cpu
                    [type] => application/vnd.vmware.vcloud.rasdItem+xml
                )

        )

)

How to display the value of the rasd:Description attribute ?

Answer the question

In order to leave comments, you need to log in

1 answer(s)
B
bears, 2016-02-01
@kowap

$xml = '<?xml version="1.0" encoding="UTF-8"?>
    <Item xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vmw="http://www.vmware.com/schema/ovf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vcloud="http://www.vmware.com/vcloud/v1.5" vcloud:href="https://vcloud.volia.com/api/vApp/vm-d9cbdcfd-44ef-449c-b727-2c992226b8a2/virtualHardwareSection/cpu" vcloud:type="application/vnd.vmware.vcloud.rasdItem+xml" xsi:schemaLocation="http://www.vmware.com/schema/ovf http://www.vmware.com/schema/ovf http://schemas.dmtf.org/ovf/envelope/1 http://schemas.dmtf.org/ovf/envelope/1/dsp8023_1.1.0.xsd http://www.vmware.com/vcloud/v1.5 http://vcloud.volia.com/api/v1.5/schema/master.xsd http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2.22.0/CIM_ResourceAllocationSettingData.xsd">
        <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>
        <rasd:Description>Number of Virtual CPUs</rasd:Description>
        <rasd:ElementName>1 virtual CPU(s)</rasd:ElementName>
        <rasd:InstanceID>4</rasd:InstanceID>
        <rasd:Reservation>0</rasd:Reservation>
        <rasd:ResourceType>3</rasd:ResourceType>
        <rasd:VirtualQuantity>1</rasd:VirtualQuantity>
        <rasd:Weight>0</rasd:Weight>
        <vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
        <Link rel="edit" href="https://example.com/api/vApp/vm-d9cbdcfd-44ef-449c-b727-2c992226b8a2/virtualHardwareSection/cpu" type="application/vnd.vmware.vcloud.rasdItem+xml"/>
    </Item>';

xml_parse_into_struct(xml_parser_create(), $xml, $values, $index);

var_dump($values[$index['RASD:DESCRIPTION'][0]]);

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question