Joomla! Programmierung/Framework/JFactory/getXMLParser

Aus Joomla! Dokumentation
Wechseln zu: Navigation, Suche

JFactory/getXMLParser Liefert eine Referenz zu einem globalen XML Parser Objekt. Wird nur neu erstellt, wenn es noch nicht existiert. Es sind verschiedene Parser verfügbar.

Inhaltsverzeichnis

[Bearbeiten] Syntax

static getXMLParser( [$type], [$options] )
Parameter Datentyp Beschreibung Standardwert
[$type] string Der Typ des XML Parsers, der geladen werden soll (not case-sensitive). Siehe weiter unten für alle unterstützten Typen.
[$options] array Ein Array von Optionen, die helfen den XML Parser zu konfigurieren. Ist abhängig vom gewählten Parser. array()

Die aktuell unterstützten XML Parser sind:

$type Parser
rss Der SimplePie Parser für RSS Feeds. Die Feed URL kann in $options['rssUrl'] übergeben werden. Die Cache Laufzeit kann in $options['cache_time'] übergeben werden.
atom Synonym für 'rss'.
simple Der JSimpleXML Parser.
dom Der DOMIT! Parser. Wenn $options['lite'] auf true gesetzt ist, wird der DOMIT Lite Parser geladen.

[Bearbeiten] Beispiele

[Bearbeiten] XML Datei parsen

In diesem Beispiel wird der JSimpleXML Parser genutzt um alle vordefinierte Modulpositionen aus dem Rhuk Milkyway Template zu laden.

$xml = JFactory::getXMLParser( 'simple' );
 
$xml->loadFile( 'templates/rhuk_milkyway/templateDetails.xml' );
$positions = $xml->document->getElementByPath( 'positions' );
foreach ($positions->children() as $position) {
  echo $position->data() . "\n";
}

Die Ausgabe lautet:

breadcrumb
left
right
top
user1
user2
user3
user4
footer
debug
syndicate

[Bearbeiten] Siehe auch

[Bearbeiten] Quellcode

Joomla 11.1 JFactory::getXMLParser()

Folder blue.png libraries/joomla

  • File php.png factory.php
  1. public static function getXMLParser($type = '', $options = array())
  2. {
  3. $doc = null;
  4.  
  5. switch (strtolower($type))
  6. {
  7. case 'rss' :
  8. case 'atom' :
  9. $cache_time = isset($options['cache_time']) ? $options['cache_time'] : 0;
  10. $doc = self::getFeedParser($options['rssUrl'], $cache_time);
  11. break;
  12.  
  13. case 'simple':
  14. // JError::raiseWarning('SOME_ERROR_CODE', 'JSimpleXML is deprecated. Use self::getXML instead');
  15. jimport('joomla.utilities.simplexml');
  16. $doc = new JSimpleXML();
  17. break;
  18.  
  19. case 'dom':
  20. JError::raiseWarning('SOME_ERROR_CODE', JText::_('JLIB_UTIL_ERROR_DOMIT'));
  21. $doc = null;
  22. break;
  23.  
  24. default :
  25. $doc = null;
  26. }
  27.  
  28. return $doc;
  29. }

[Bearbeiten] Quellcode 1.5

Joomla 1.5 JFactory->getXMLParser() in Joomla! 1.5.22

Folder blue.png libraries/joomla

  • File php.png factory.php
  1. function &getXMLParser( $type = 'DOM', $options = array())
  2. {
  3. $doc = null;
  4.  
  5. switch (strtolower( $type ))
  6. {
  7. case 'rss' :
  8. case 'atom' :
  9. {
  10. if (!is_null( $options['rssUrl'] ))
  11. {
  12. jimport ('simplepie.simplepie');
  13. if(!is_writable(JPATH_BASE.DS.'cache')) {
  14. $options['cache_time'] = 0;
  15. }
  16. $simplepie = new SimplePie(
  17. $options['rssUrl'],
  18. JPATH_BASE.DS.'cache',
  19. isset( $options['cache_time'] ) ? $options['cache_time'] : 0
  20. );
  21. $simplepie->force_feed(true);
  22. $simplepie->handle_content_type();
  23. if ($simplepie->init()) {
  24. $doc = $simplepie;
  25. } else {
  26. JError::raiseWarning( 'SOME_ERROR_CODE', JText::_('ERROR LOADING FEED DATA') );
  27. }
  28. }
  29. } break;
  30.  
  31. case 'simple' :
  32. {
  33. jimport('joomla.utilities.simplexml');
  34. $doc = new JSimpleXML();
  35. } break;
  36.  
  37. case 'dom' :
  38. default :
  39. {
  40. if (!isset($options['lite']) || $options['lite'])
  41. {
  42. jimport('domit.xml_domit_lite_include');
  43. $doc = new DOMIT_Lite_Document();
  44. }
  45. else
  46. {
  47. jimport('domit.xml_domit_include');
  48. $doc = new DOMIT_Document();
  49. }
  50. }
  51. }
  52.  
  53. return $doc;
  54. }
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Sonstiges
Team Navigation
Werkzeuge