Forum Moderators: coopster

Message Too Old, No Replies

XML parsing

php xml parser for advanced xml

         

rapsody

12:36 pm on Jan 3, 2008 (gmt 0)

10+ Year Member



i have dones some simple xml parsing before however i have a xml file which seems quite advanced to what i have done before. I need to parse the file and anyone who could point me in the right direction i have had a look at SimpleXML am i on the right tracks,

<xml xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00BB00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00BB00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
<s:Schema id="RowsetSchema">
<s:ElementType name="row" content="eltOnly" rs:CommandTimeout="30">
<s:AttributeType name="storyid" rs:number="1">
<s:datatype dt:type="int" dt:maxLength="4" rs:precision="10" rs:fixedlength="true" rs:maybenull="false"/>
</s:AttributeType>
<s:AttributeType name="title" rs:number="2" rs:writeunknown="true">
<s:datatype dt:type="string" rs:dbtype="str" dt:maxLength="100" rs:maybenull="false"/>
</s:AttributeType>
<s:AttributeType name="shorttitle" rs:number="3" rs:nullable="true">

<s:datatype dt:type="string" rs:dbtype="str" dt:maxLength="8000"/>
</s:AttributeType>
<s:AttributeType name="web" rs:number="4" rs:nullable="true">
<s:datatype dt:type="string" rs:dbtype="str" dt:maxLength="8000"/>
</s:AttributeType>
<s:AttributeType name="caption" rs:number="5" rs:nullable="true" rs:writeunknown="true">
<s:datatype dt:type="string" rs:dbtype="str" dt:maxLength="6000"/>
</s:AttributeType>
<s:AttributeType name="datetoshow" rs:number="6" rs:writeunknown="true">

<s:datatype dt:type="dateTime" rs:dbtype="timestamp" dt:maxLength="16" rs:scale="3" rs:precision="23" rs:fixedlength="true" rs:maybenull="false"/>
</s:AttributeType>
<s:AttributeType name="displayorder" rs:number="7" rs:writeunknown="true">
<s:datatype dt:type="int" dt:maxLength="4" rs:precision="10" rs:fixedlength="true" rs:maybenull="false"/>
</s:AttributeType>
<s:AttributeType name="mainimage" rs:number="8" rs:nullable="true" rs:writeunknown="true">
<s:datatype dt:type="string" rs:dbtype="str" dt:maxLength="200"/>
</s:AttributeType>
<s:extends type="rs:rowbase"/>

</s:ElementType>
</s:Schema>
<rs:data>
<z:row storyid="48845" title="title" shorttitle="long text....." caption="long text....." datetoshow="2007-11-28T00:00:00" displayorder="1" mainimage="image url"/>
<z:row storyid="48842" title="title" shorttitle="long text....." datetoshow="2007-11-28T00:00:00" displayorder="100" mainimage="image url"/>
<z:row storyid="48843" title="long text....." displayorder="100" mainimage="image url"/>

</rs:data>
</xml>

PHP_Chimp

1:29 pm on Jan 3, 2008 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Are you using PHP4 or 5?
As xml parsing with 4 is a bit of a pain. As you have to do all of this (from the manual [uk3.php.net])-
$xml_parser = xml_parser_create();
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 1);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
xml_set_processing_instruction_handler($xml_parser, "PIHandler");
xml_set_default_handler($xml_parser, "defaultHandler");
xml_set_external_entity_ref_handler($xml_parser, "externalEntityRefHandler");

In PHP 5 you can use simpleXML that is a lot easier.
Have a look at [uk3.php.net...]
and
[uk3.php.net...]

rapsody

1:51 pm on Jan 3, 2008 (gmt 0)

10+ Year Member



i'm using php5 i'll ahve a look at the link cheers