<?php
class XML
{
// Dla PHP5
function __construct( $strFileName )
{
{
}
else
{
// W razie niepowodzenia, zaladowanie pliku z opisem problemu
}
}
// Dla PHP4
function XML( $strFileName )
{
$this -> __construct( $strFileName );
}
function getContent( $strTagName )
{
preg_match_all( '|<'. $strTagName .'(.*)>(.*)</'. $strTagName .'>|isU', $this -> resFileContent
, $arrContentTags );
for( $intIterTags = 0; $intIterTags < count( $arrContentTags[0
] ); $intIterTags++ ) {
return $arrContentTags[2][$intIterTags];
}
}
function getAttributes( $strTagName, $strAttributeName )
{
preg_match_all( '|<'. $strTagName .'(.*)>(.*)</'. $strTagName .'>|isU', $this -> resFileContent
, $arrContentTags );
for( $intIterTags = 0; $intIterTags < count( $arrContentTags[1
] ); $intIterTags++ ) {
if( !empty( $arrContentTags[1
][$intIterTags] ) ) {
$arrContentAttributes = explode( ' ', $arrContentTags[1
][$intIterTags] );
for( $intIterAttributes = 0; $intIterAttributes < count( $arrContentAttributes ); $intIterAttributes++ ) {
$arrContentAttributesElements = explode( '=', $arrContentAttributes[$intIterAttributes] );
if( $arrContentAttributesElements[0] == $strAttributeName )
{
// Zabezpiecznie przed roznymi sposobami okreslenia wartosci atrybutow
$arrDeleteQuotes[] = ''';
$arrDeleteQuotes[] = '\"';
return str_replace( $arrDeleteQuotes, '', $arrContentAttributesElements[1
] ); }
}
}
}
}
}
?>
XML:
<? xml version="1.1" encoding="ISO-8859-2" ?>
<index>
<page>Strona główna</page>
<author>kicaj_</author>
<mail antispam="yes">kicaj@m-cz.net</mail>
<content htmlcode="yes">
Witamy w Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras ligula. Cras eu sapien. Maecenas
dignissim elit non dui interdum cursus. Nam sit amet velit vel dolor adipiscing tristique. Cras
elementum ultricies felis. <img src="img.jpg" align="right" style="float: right; margin-top: 5px;
margin-left: 3px;">Donec at risus quis nisl egestas nonummy. In augue. Maecenas tempor,
leo ut bibendum convallis, odio mauris rhoncus leo, a viverra libero odio vitae lorem. In id lacus.
Ut non ante ac nisl bibendum blandit. Maecenas varius dolor in ligula. Vivamus dapibus suscipit mi.
Proin fermentum augue non sem. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per
inceptos hymenaeos. Proin quis urna. Nunc in magna. Fusce eget lectus.<br />
<br />
Nam quam. Proin fermentum convallis nunc. Praesent dapibus ligula eget turpis. Phasellus a libero
non sem tincidunt posuere. Etiam congue massa. Mauris odio. Pellentesque lorem. Vestibulum sem ipsum,
tempor sit amet, sagittis at, viverra quis, pede. Sed quis sem. Curabitur vitae mi id tellus vulputate
luctus. Quisque non risus eu dolor aliquet blandit. Phasellus ipsum velit, commodo nec, tristique et,
consectetuer sit amet, diam.<br />
<br />
</content>
</index>
Zastosowanie:
<?php
$startXML = new XML( 'resource.xml' );
echo $startXML -> getContent
( 'page' ) .'<br />';
if( $startXML -> getAttributes( 'mail', 'antispam' ) == 'yes' )
{
}
else
{
echo $startXML -> getContent
( 'mail' ); }
?>
Wlasnie taki parser, byl mi potrzebny do jednej strony, bardzo prosty przykład, prosta klasa, jesli bedzie rozbudowywana to takze opublikuje ja.
Ten post edytował kicaj_ 26.06.2005, 22:40:08