simplexmlwriter.php
- A string based XML writer
simplexmlwriter.php
is an easy to use XMl generation class written in PHP. It simplifies the generation of XML documents by allowing XML to be generated through a series of function calls, tidying up your code and improving readability.
add_xslt("https://example.com/test.xslt"); //add an xslt stylesheet
$xml->open("root"); //open the root tag (although you could call it anything)
//loop 10 times
foreach(range(1, 10) as $i)
{
$xml->open("number"); //open a tag
$xml->addtag("type", ["foo" => "bar"], "integer"); //open and close a tag, adding text and attributes in one go
$xml->open("value"); //open a tag
$xml->addtext($i); //add some text
$xml->close(); //close the tag
$xml->close(); //close the tag
}
$xml->closeall(); //close any other tags that are still open
//------------------
header("content-type: application/xml"); //set the appropriate header
echo($xml->render()); //send the XML to the requester
?>
Name | Type | Description |
---|---|---|
xml_doctype |
constant | The XML doctype that will be inserted at the top of the document |
generator_info |
constant | A string that will be inserted just below the doctype in a comment detailsing the generator that was used. |
prettyprint |
property | Whether the XML should be formatted (prettyprinted) or not. remember to set this *before* you start generating any XML as this generator is string based, and will not go back and change anything once you have changed it. Defaults to true. |
add_xslt($url = "") |
function | Add an XSLT stylesheet to the document. remember to call this before opening the first tag. |
open($tagname = "root", $attributes = []) |
function | Open a tag with the given name with the given attribute. The attributes should be an array in the from ["name1" => "value1", "name2" => "value2"] . |
addtext($text = "", $newline = true) |
function | Add some text to the xml document. the $newline argument indicated whether a newline character should be added after the text. |
close() |
function | Close the last tag that was opened. |
closeall() |
function | Close all opened tags. |
addtag($tagname = "root", $attributes = [], $text = "") |
function | Add a tag with the name $tagname and then close it again. Attributes can be specified through an array (see the open() function above for detail on how to specify attributes), and text can be added through the $text argument. Pass an empty array to skip adding attributes. |
addcomment($text = "") |
function | Add a comment containing the given text. |
render() |
function | Render the xml and return the output. All open tags are closed in the rendering, but are left open in the main document so you can continue to add to the xml document after rendering. |
__toString() |
function | Alias to render() . Allows you to pass the document itself to functions, like this: echo($myxml); instead of echo($myxml->render()) |
Simply download simplexmlwriter.php
and require()
it, and you are ready to use it.