【发布时间】:2018-04-02 21:46:31
【问题描述】:
我一直在试图弄清楚如何解析这个 xml 字符串。
我得到一个从 simplexml_load_string 返回的空对象。
非常感谢任何关于如何进行的想法。
SimpleXMLElement Object
(
)
这是从 ASP.net 服务器接收的 XML。正在尝试使用 PHP 进行解析。
<?xml version="1.0" encoding="utf-8"?>
<DataSet>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Table">
<xs:complexType>
<xs:sequence>
<xs:element name="MadeBy" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Note" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DateMade" type="xs:dateTime" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<NewDataSet>
<Table diffgr:id="Table1" msdata:rowOrder="0">
<MadeBy>admin</MadeBy>
<Note>Test note v2, now with added characters for a longer note!</Note>
<DateMade>2018-04-02T12:45:18.503-04:00</DateMade>
</Table>
<Table diffgr:id="Table2" msdata:rowOrder="1">
<MadeBy>admin</MadeBy>
<Note>Test application with a test note</Note>
<DateMade>2018-04-02T12:44:56.05-04:00</DateMade>
</Table>
</NewDataSet>
</diffgr:diffgram>
</DataSet>
我想我应该得到一些东西,而不是一个空的对象。
【问题讨论】:
-
如果您不向我们展示您的代码,我们很难提供帮助。
-
这是让它为我工作的关键:` $notes_obj = simplexml_load_string($notes);` ` $children = $notes_obj->children('urn:schemas-microsoft-com:xml -diffgram-v1')->儿童(); `