18/02/2014, 07:29
|
| | Fecha de Ingreso: mayo-2013
Mensajes: 1
Antigüedad: 11 años, 7 meses Puntos: 0 | |
Respuesta: recorrer 'schema' de un wsdl con simplexml Hola, estoy haciendo un programa que me detecte las referencias cíclicas de un XSD (Esquema de datos en XML). La solución para lo que estas preguntando es la siguiente: primero imprime la estructura de la variable que esta tomando el wsdl,
ej: $wsdl = simplexml_load_file($entrada);
allí podrás ver cual es la estructura y podrás recorrerla sin inconvenientes, para tomar un nodo o el atributo sigue las siguientes instrucciones:
xsd de ejemplo:
<?xml version="1.0" encoding="UTF-8"?>
<schema
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://blablabla/PersonName"
targetNamespace="http://blablabla/PersonName"
elementFormDefault="qualified">
<complexType name="PersonName">
<sequence>
<element name="FirstName" type="string" minOccurs="0"/>
<element name="LastName" type="string" minOccurs="0"/>
<element name="SecondFamilyName" type="string" minOccurs="0"/>
<element name="Nickname" type="string" minOccurs="0"/>
<element name="PreferedName" type="string" minOccurs="0"/>
<element name="LegalName" type="string" minOccurs="0"/>
</sequence>
</complexType>
</schema>
$NombreComplexType= (string)$xml->complexType["name"];
Tiene almacenado: PersonName
$ElementName= (string)$xml->complexType->sequence->element[2]["name"];
Tiene almacenado: SecondFamilyName
Espero que le haya servido... |