Create random XML with the help of fzaniotto/Faker.

0.0.9 2014-05-01 08:05 UTC


Create fake XML with the help of fzaninotto/Faker


Useful for testing stuff.


Supply the constructor with a valid SimpleXMLElement and use the methods to generate XML in the sizes that you wish.

Your supplied XML will be used as a blueprint for creating the random XML. If an attribute as an integer, random integers will be created for those attributes. If your node text consists of a text with linebreaks, a random text with the same amount of linebreaks will be created for those nodes.

Only the first node encountered will be used like this, the rest of your supplied XML will be ignored.



"require": {
    "prewk/xml-faker": "*"


Create an example.xml:

    <child-c an-integer-attribute="123">
      <grandchild an-float-attribute="456">
        This is some
        text on some

Load it:

$myXmlBlueprint = simplexml_load_file("example.xml");
$xmlFaker = new Prewk\XmlFaker($myXmlBlueprint);

Create an XML string with 100 nodes:

echo $xmlFaker->asString(Prewk\XmlFaker::NODE_COUNT_RESTRICTION_MODE, 100);

Create an XML string of maximum 1 MB (1024 * 1024 chars):

echo $xmlFaker->asString(Prewk\XmlFaker::BYTE_COUNT_RESTRICTION_MODE, 1024 * 1024);

More useful, stream an XML file of 100 MB to disk (will take a while):

$xmlFaker->asFile("my-new-large-xml-file.xml", Prewk\XmlFaker::BYTE_COUNT_RESTRICTION_MODE, 100 * 1024 * 1024);