我正在嘗試通過我已經提供的xsd文件進行迭代。通過xsd xml文件迭代
它有數以百計的這些複雜類型的元素,我試圖遍歷每個元素,最終得到如下所示的數組。
<xs:complexType name="UserAccessDeviceFileGetListRequest">
<xs:complexContent>
<xs:extension base="core:OCIRequest">
<xs:sequence>
<xs:element name="userId" type="UserId"/>
<xs:element name="accessDevice" type="AccessDevice"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
<xs:complexType name="UserAccessDeviceFileModifyRequest">
<xs:complexContent>
<xs:extension base="core:OCIRequest">
<xs:sequence>
<xs:element name="userId" type="UserId"/>
<xs:element name="accessDevice" type="AccessDevice"/>
<xs:element name="fileFormat" type="DeviceManagementFileFormat"/>
<xs:element name="uploadFile" type="FileResource"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
Array
(
[UserAccessDeviceFileGetListRequest] => Array
([0] => "userId"
[1] => "accessDevice"
)
[UserAccessDeviceFileModifyRequest] = > Array
([0] => "userId"
[1] => "accessDevice"
[2] => "fileFormat"
[3] => "uploadFile"
)
)
我一直在使用的XMLReader試過,我可以得到複雜類型的名稱,但不能得到任何更深獲取該元素的名稱...
$xsdstring = "file.xsd";
$t = new XMLREADER();
$t->open($xsdstring);
while($t->read())
{
if ($t->name === "xs:complexType")
{
echo "-->" . $t->getAttribute('name') . "\n";
}
}
結果與所有complexType名稱屬性的列表...
-->UserAccessDeviceFileGetListRequest
-->UserAccessDeviceFileModifyRequest
我怎樣才能讓孩子們呢?
在您的代碼片段中,您只能讀取xs:complexType並訪問name屬性。您還需要獲取xs:sequence子元素。 – SenseException