Ver Mensaje Individual
  #4 (permalink)  
Antiguo 18/02/2014, 07:29
williamsunefa
 
Fecha de Ingreso: mayo-2013
Mensajes: 1
Antigüedad: 11 años
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...