Class XML_Util

Description

utility class for working with XML documents

Located in /PEAR/XML/Util.php (line 92)


	
			
Method Summary
 string apiVersion ()
 string attributesToString (array $attributes, [boolean|array $sort = true], [boolean $multiline = false], [string $indent = ' '], [string $linebreak = "\n"], [integer $entities = XML_UTIL_ENTITIES_XML])
 string collapseEmptyTags (string $xml, [integer $mode = XML_UTIL_COLLAPSE_ALL])
 string createCDataSection (string $data)
 string createComment (string $content)
 string createEndElement (string $qname)
 string createStartElement (string $qname, [array $attributes = array()], [string $namespaceUri = null], [boolean $multiline = false], [string $indent = '_auto'], [string $linebreak = "\n"])
 string createTag (string $qname, [array $attributes = array()], [mixed $content = null], [string $namespaceUri = null], [integer $replaceEntities = XML_UTIL_REPLACE_ENTITIES], [boolean $multiline = false], [string $indent = "_auto"], [string $linebreak = "\n"])
 string createTagFromArray (array $tag, [integer $replaceEntities = XML_UTIL_REPLACE_ENTITIES], [boolean $multiline = false], [string $indent = "_auto"], [string $linebreak = "\n"])
 string getDocTypeDeclaration (string $root, [string $uri = null], [string $internalDtd = null])
 string getXMLDeclaration ([string $version = "1.0"], [string $encoding = null], [mixed $standalone = null], boolean $standAlone)
 mixed isValidName (string $string)
 object PEAR_Error raiseError (string $msg, integer $code)
 string replaceEntities (string $string, [integer $replaceEntities = XML_UTIL_ENTITIES_XML])
 string reverseEntities (string $string, [integer $replaceEntities = XML_UTIL_ENTITIES_XML])
 array splitQualifiedName (string $qname, [string $defaultNs = null])
Methods
apiVersion (line 101)

return API version

  • return: API version
  • static:
  • access: public
string apiVersion ()
attributesToString (line 292)

create string representation of an attribute list

  1. require_once 'XML/Util.php';
  2.  
  3. // build an attribute string
  4. $att = array(
  5. "foo" => "bar",
  6. "argh" => "tomato"
  7. );
  8.  
  9. $attList = XML_Util::attributesToString($att);

string attributesToString (array $attributes, [boolean|array $sort = true], [boolean $multiline = false], [string $indent = ' '], [string $linebreak = "\n"], [integer $entities = XML_UTIL_ENTITIES_XML])
  • array $attributes: attribute array
  • boolean|array $sort: sort attribute list alphabetically, may also be an assoc array containing the keys 'sort', 'multiline', 'indent', 'linebreak' and 'entities'
  • boolean $multiline: use linebreaks, if more than one attribute is given
  • string $indent: string used for indentation of multiline attributes
  • string $linebreak: string used for linebreaks of multiline attributes
  • integer $entities: setting for entities in attribute values (one of XML_UTIL_ENTITIES_NONE, XML_UTIL_ENTITIES_XML, XML_UTIL_ENTITIES_XML_REQUIRED, XML_UTIL_ENTITIES_HTML)
collapseEmptyTags (line 358)

Collapses empty tags.

  • return: XML
  • static:
  • access: public
string collapseEmptyTags (string $xml, [integer $mode = XML_UTIL_COLLAPSE_ALL])
  • string $xml: XML
  • integer $mode: Whether to collapse all empty tags (XML_UTIL_COLLAPSE_ALL) or only XHTML (XML_UTIL_COLLAPSE_XHTML_ONLY) ones.
createCDataSection (line 642)

create a CData section

  1. require_once 'XML/Util.php';
  2.  
  3. // create a CData section
  4. $tag = XML_Util::createCDataSection("I am content.");

  • return: CData section with content
  • static:
  • access: public
string createCDataSection (string $data)
  • string $data: data of the CData section
createComment (line 621)

create an XML comment

  1. require_once 'XML/Util.php';
  2.  
  3. // create an XML start element:
  4. $tag = XML_Util::createComment("I am a comment");

  • return: XML comment
  • static:
  • access: public
string createComment (string $content)
  • string $content: content of the comment
createEndElement (line 600)

create an end element

  1. require_once 'XML/Util.php';
  2.  
  3. // create an XML start element:
  4. $tag = XML_Util::createEndElement("myNs:myTag");

string createEndElement (string $qname)
  • string $qname: qualified tagname (including namespace)
createStartElement (line 550)

create a start element

  1. require_once 'XML/Util.php';
  2.  
  3. // create an XML start element:
  4. $tag = XML_Util::createStartElement("myNs:myTag", array("foo" => "bar") ,"http://www.w3c.org/myNs#");

string createStartElement (string $qname, [array $attributes = array()], [string $namespaceUri = null], [boolean $multiline = false], [string $indent = '_auto'], [string $linebreak = "\n"])
  • string $qname: qualified tagname (including namespace)
  • array $attributes: array containg attributes
  • string $namespaceUri: URI of the namespace
  • boolean $multiline: whether to create a multiline tag where each attribute gets written to a single line
  • string $indent: string used to indent attributes (_auto indents attributes so they start at the same column)
  • string $linebreak: string used for linebreaks
createTag (line 401)

create a tag

This method will call XML_Util::createTagFromArray(), which is more flexible.

  1. require_once 'XML/Util.php';
  2.  
  3. // create an XML tag:
  4. $tag = XML_Util::createTag("myNs:myTag", array("foo" => "bar"), "This is inside the tag", "http://www.w3c.org/myNs#");

string createTag (string $qname, [array $attributes = array()], [mixed $content = null], [string $namespaceUri = null], [integer $replaceEntities = XML_UTIL_REPLACE_ENTITIES], [boolean $multiline = false], [string $indent = "_auto"], [string $linebreak = "\n"])
  • string $qname: qualified tagname (including namespace)
  • array $attributes: array containg attributes
  • mixed $content
  • string $namespaceUri: URI of the namespace
  • integer $replaceEntities: whether to replace XML special chars in content, embedd it in a CData section or none of both
  • boolean $multiline: whether to create a multiline tag where each attribute gets written to a single line
  • string $indent: string used to indent attributes (_auto indents attributes so they start at the same column)
  • string $linebreak: string used for linebreaks
createTagFromArray (line 460)

create a tag from an array

this method awaits an array in the following format

 array(
  "qname"        => $qname         // qualified name of the tag
  "namespace"    => $namespace     // namespace prefix (optional, if qname is specified or no namespace)
  "localpart"    => $localpart,    // local part of the tagname (optional, if qname is specified)
  "attributes"   => array(),       // array containing all attributes (optional)
  "content"      => $content,      // tag content (optional)
  "namespaceUri" => $namespaceUri  // namespaceUri for the given namespace (optional)
   )

  1. require_once 'XML/Util.php';
  2.  
  3. $tag = array(
  4. "qname" => "foo:bar",
  5. "namespaceUri" => "http://foo.com",
  6. "attributes" => array( "key" => "value", "argh" => "fruit&vegetable" ),
  7. "content" => "I'm inside the tag",
  8. );
  9. // creating a tag with qualified name and namespaceUri
  10. $string = XML_Util::createTagFromArray($tag);

string createTagFromArray (array $tag, [integer $replaceEntities = XML_UTIL_REPLACE_ENTITIES], [boolean $multiline = false], [string $indent = "_auto"], [string $linebreak = "\n"])
  • array $tag: tag definition
  • integer $replaceEntities: whether to replace XML special chars in content, embedd it in a CData section or none of both
  • boolean $multiline: whether to create a multiline tag where each attribute gets written to a single line
  • string $indent: string used to indent attributes (_auto indents attributes so they start at the same column)
  • string $linebreak: string used for linebreaks
getDocTypeDeclaration (line 248)

build a document type declaration

  1. require_once 'XML/Util.php';
  2.  
  3. // get a doctype declaration:
  4. $xmlDecl = XML_Util::getDocTypeDeclaration("rootTag","myDocType.dtd");

  • return: doctype declaration
  • since: 0.2
  • static:
  • access: public
string getDocTypeDeclaration (string $root, [string $uri = null], [string $internalDtd = null])
  • string $root: name of the root tag
  • string $uri: uri of the doctype definition (or array with uri and public id)
  • string $internalDtd: internal dtd entries
getXMLDeclaration (line 213)

build an xml declaration

  1. require_once 'XML/Util.php';
  2.  
  3. // get an XML declaration:
  4. $xmlDecl = XML_Util::getXMLDeclaration("1.0", "UTF-8", true);

string getXMLDeclaration ([string $version = "1.0"], [string $encoding = null], [mixed $standalone = null], boolean $standAlone)
  • string $version: xml version
  • string $encoding: character encoding
  • boolean $standAlone: document is standalone (or not)
isValidName (line 711)

check, whether string is valid XML name

XML names are used for tagname, attribute names and various other, lesser known entities.

An XML name may only consist of alphanumeric characters, dashes, undescores and periods, and has to start with a letter or an underscore.

  1. require_once 'XML/Util.php';
  2.  
  3. // verify tag name
  4. $result = XML_Util::isValidName("invalidTag?");
  5. if (XML_Util::isError($result)) {
  6. print "Invalid XML name: " . $result->getMessage();
  7. }

  • return: true, if string is a valid XML name, PEAR error otherwise
  • todo: support for other charsets
  • static:
  • access: public
mixed isValidName (string $string)
  • string $string: string that should be checked
raiseError (line 737)

replacement for XML_Util::raiseError

Avoids the necessity to always require PEAR.php

  • access: public
object PEAR_Error raiseError (string $msg, integer $code)
  • string $msg: error message
  • integer $code: error code
replaceEntities (line 126)

replace XML entities

With the optional second parameter, you may select, which entities should be replaced.

  1. require_once 'XML/Util.php';
  2.  
  3. // replace XML entites:
  4. $string = XML_Util::replaceEntities("This string contains < & >.");

string replaceEntities (string $string, [integer $replaceEntities = XML_UTIL_ENTITIES_XML])
  • string $string: string where XML special chars should be replaced
  • integer $replaceEntities: setting for entities in attribute values (one of XML_UTIL_ENTITIES_XML, XML_UTIL_ENTITIES_XML_REQUIRED, XML_UTIL_ENTITIES_HTML)
reverseEntities (line 170)

reverse XML entities

With the optional second parameter, you may select, which entities should be reversed.

  1. require_once 'XML/Util.php';
  2.  
  3. // reverse XML entites:
  4. $string = XML_Util::reverseEntities("This string contains &lt; &amp; &gt;.");

string reverseEntities (string $string, [integer $replaceEntities = XML_UTIL_ENTITIES_XML])
  • string $string: string where XML special chars should be replaced
  • integer $replaceEntities: setting for entities in attribute values (one of XML_UTIL_ENTITIES_XML, XML_UTIL_ENTITIES_XML_REQUIRED, XML_UTIL_ENTITIES_HTML)
splitQualifiedName (line 670)

split qualified name and return namespace and local part

  1. require_once 'XML/Util.php';
  2.  
  3. // split qualified tag
  4. $parts = XML_Util::splitQualifiedName("xslt:stylesheet");
the returned array will contain two elements:
 array(
       "namespace" => "xslt",
       "localPart" => "stylesheet"
      );

  • return: array containing namespace and local part
  • usedby: XML_Util::createTagFromArray() - to get local part and namespace of a qualified name
  • static:
  • access: public
array splitQualifiedName (string $qname, [string $defaultNs = null])
  • string $qname: qualified tag name
  • string $defaultNs: default namespace (optional)

Documentation generated on Mon, 04 Dec 2006 11:10:20 -0500 by phpDocumentor 1.3.0RC3