`
we1818
  • 浏览: 61855 次
  • 性别: Icon_minigender_1
  • 来自: 湖州
社区版块
存档分类
最新评论

[翻译] Joomla XML 解析器规范 上

    博客分类:
  • php
阅读更多
概述

Joomla! 1.5 新增 JSimpleXML 类,可以更为简单的读取xml文件,但是现在还不能修改CDATA或或者属性,也不支持XPath.

JSimpleXML需要PHP 4.2以上版本,以及 Expat扩展。


2. 实现

JSimpleXML 类代码:


class JSimpleXML extends JObject
{
    /**
    * Document element
    *
    * @var object
    */
    var $document = null;
   
     /**
     * Interprets a string of XML into an object
     *
     * This function will take the well-formed xml string data and return an object of class
     * JSimpleXMLElement with properties containing the data held within the xml document.
     * If any errors occur, it returns FALSE.
     *
     * @param string  Well-formed xml string data
     * @param string  currently ignored
     * @return object JSimpleXMLElement
     */
    function loadString($string, $classname = null)
    {
  $this->_parse($string);
  return true;
    }

     /**
     * Interprets an XML file into an object
     *
     * This function will convert the well-formed XML document in the file specified by
     * filename to an object  of class JSimpleXMLElement. If any errors occur during file
     * access or interpretation, the function returns FALSE.
     *
     * @param string  Path to xml file containing a well-formed XML document
     * @param string  currently ignored
     * @return object JSimpleXMLElement
     */
    function loadFile($path, $classname = null)
    {
  //Get the XML document loaded into a variable
  $xml = file_get_contents($path);
  $this->_parse($xml);
  return true;
    }

    /**
     * Get the parser
     *
     * @access public
     * @return resource XML parser resource handle
     */
    function getParser() {
  return $this->_parser;
    }

    /**
     * Set the parser
     *
     * @access public
     * @param resource XML parser resource handle
     */
    function setParser($parser) {
  $this->_parser = $parser;
    }
}

3. 使用

正如其名,JSimpleXML使用起来非常简单。你可以参考php5的SimpleXML文档,机关本质上两者有些不同,但是使用上是基本兼容的。

来看一个xml文档的例子(example.xml)




 
 
   
     Ms. Coder
     Onlivia Actora
   
   
     Mr. Coder
     El ActÓr
   
 
 
   So, this language. It's like, a programming language. Or is it a scripting language? All 
   is revealed in this thrilling horror spoof of a documentary.
 
  7
  5



2.1 开始

首先要载入xml文档,在本例中我们要载入example.xml,JSimpleXML loadFile 方法载入相应文件的xml格式数据。loadFile其实使用 file_get_contents()方法读取文件,并把被荣传递给解析器。

//Create a JSimpleXML object
$xml = new JSimpleXML();

//Load the xml file
$xml->loadFile($file);
?>

XML解析器在解析文档时候发生错误会触发 JError,如果没有任何错误,就会继续进行。

JSimpleXML的对象结构是直接了当的,文档的根包含在内。也就是说上例中$xml->document是根。$xml->document->movie[0]是第一个movie标签$xml->document->movie是一个数组,而不是JSimpleXMLElement对象。
分享到:
评论

相关推荐

    joomla组件翻译篇

    ### Joomla组件翻译篇知识点解析 #### 一、MVC组件开发概述 - **MVC(Model-View-Controller)架构**:这是一种常见的软件设计模式,主要用于简化开发过程并提高代码可维护性。在Joomla中,它被广泛应用于组件开发...

    用python写的joomla模块生成器

    - XML解析:因为`mod_mymodule.xml`是XML文件,所以可能需要了解XML语法和如何在Python中处理XML数据。 - PHP与Joomla API:虽然主要使用Python,但最终生成的代码是PHP,因此需要对PHP基础和Joomla API有一定的了解...

    joom!fish joomla翻译组件

    Fish是Joomla平台上的一个多语言解决方案,为创建和管理多语言网站提供了强大工具。通过理解和充分利用其功能,用户可以轻松地扩展他们的网站,以满足全球观众的需求。同时,与Joomla的紧密集成使得Joom!Fish成为...

    joomla资料 joomla开发 joomla教程

    然而,尽管Joomla被公认为世界上最优秀的CMS之一,但在中国的普及和发展却面临着一些挑战。 首先,Joomla在中国的现状并不乐观。由于进入中国市场较晚,加上中文资源相对匮乏,许多用户对Joomla的认知度较低,这...

    joomla 编辑器

    总的来说,这个压缩包提供了Joomla CMS系统中使用的FCKeditor(现为CKEditor)的一个版本,包括了所有必要的文件和配置,用于在Joomla网站上实现富文本编辑功能。对于Joomla管理员来说,理解这些文件的作用和如何...

    joomla模板翻译篇

    通过正确翻译和配置Joomla模板中的 `templateDetails.xml` 文件以及合理声明语言文件,可以使Joomla模板更具国际化特性,从而更好地服务于全球用户。同时,自定义模块结构能够为用户提供更加个性化和美观的界面体验...

    joomla3.5.1完整汉化包

    "pkg_zh-CN.xml"文件则可能需要通过Joomla的扩展管理器进行安装,以完成全局的语言设置。 6. **兼容性与更新**:使用汉化包时需要注意其与Joomla核心版本的兼容性,确保汉化包是针对正确版本的。同时,随着Joomla的...

    joomla3.2.2简体中文版Language_Joomla_3.2.1_CN

    在描述中再次强调了这是针对简体中文用户的版本,意味着所有界面元素、帮助文档和错误提示都将被翻译为简体中文,提高了中国用户使用Joomla! 的体验。 在提供的标签中,“joomla” 和 “简体中文” 明确指出这是与 ...

    joomla 最新版easyblog

    - **easyblog.xml**:这是组件的XML清单文件,包含了组件的元数据、安装信息和依赖项等,用于Joomla的自动安装过程。 - **languages**:该目录包含组件的各种语言文件,使得EasyBlog可以支持多语言环境。 - **...

    joomla and joomla

    - **virtuemart.xml**:这是VirtueMart 的安装文件,包含了组件的元数据,用于Joomla 的自动安装过程。 - **install**:这个目录包含安装过程中所需的文件,如SQL脚本和配置文件。 - **administrator**:这部分是...

    joomla模块开发教程

    Joomla模块开发是扩展Joomla网站功能的关键途径,使其能够支持多语言,为全球用户提供更加友好和便捷的体验。在本教程中,我们将探讨如何创建和管理Joomla模块的语言文件,以便实现多语言功能。 首先,为了使模块...

    joomla开发教程

    - `<extension>`标签的`name`、`element`、`type`、`version`和`detailsurl`参数分别表示扩展名、未翻译的扩展名、扩展类型、最新版本和更新XML文件地址。 - **Extension(单个扩展式)**: - 当`type=...

    zh-CN_JEvents语言文件for Joomla2.5up

    JEvents则是一个在Joomla平台上运行的事件管理组件,它允许用户创建、管理和发布各种活动日程。 描述中提到“适用于JEvents 2.2以上”,这意味着这个语言包不仅兼容Joomla 2.5,还适用于JEvents 2.2及其后续的更新...

    joomla 1.5.8 中文版

    9. **XMLRPC 支持**:`xmlrpc` 文件夹中的内容可能涉及 XML-RPC 协议,允许远程调用 Joomla 的某些功能,例如远程发布或管理内容。 10. **库与框架**:`libraries` 文件夹包含 Joomla 的核心库和框架,这些库提供了...

    joomla zoo组件demo版

    通过解析这个XML文件,Joomla的安装程序可以知道如何正确地处理组件的安装过程。 4. **packages**:这是一个目录,通常包含组件的子模块、插件或其他附加组件。在Zoo组件的案例中,这个目录可能包含了各种预设的...

    Joomla PayPlans发票模块

    PayPlans是一个强大的订阅管理解决方案,允许用户在Joomla网站上创建和管理各种付款计划,如会员订阅或服务费用。 当我们谈论"Joomla PayPlans发票模块"时,我们指的是一个专门为PayPlans设计的组件,旨在帮助用户...

Global site tag (gtag.js) - Google Analytics