SimpleXMLElement::__construct

Creates a new SimpleXMLElement object

&reftitle.description; public `SimpleXMLElement::__construct` `string` `data` `int` `options` 0 `bool` `dataIsURL`&false; `string` `namespaceOrPrefix`"" `bool` `isPrefix`&false;

Creates a new `SimpleXMLElement` object.

&reftitle.parameters;

`data`

- A well-formed XML string or the path or URL to an XML document if `dataIsURL` is &true;.

`options`

- Optionally used to specify additional Libxml parameters, which affect reading of XML documents. Options which affect the output of XML documents (e.g. `LIBXML_NOEMPTYTAG`) are silently ignored.

  It may be necessary to pass `LIBXML_PARSEHUGE` to be able to process deeply nested XML or very large text nodes.

`dataIsURL`

- By default, `dataIsURL` is &false;. Use &true; to specify that `data` is a path or URL to an XML document instead of `string` data.

`namespaceOrPrefix`

- Namespace prefix or URI.

`isPrefix`

- &true; if `namespaceOrPrefix` is a prefix, &false; if it's a URI; defaults to &false;.

&reftitle.errors;

Produces an `E_WARNING` error message for each error found in the XML data and additionally throws an `Exception` if the XML data could not be parsed.

Use `libxml_use_internal_errors` to suppress all XML errors, and `libxml_get_errors` to iterate over them afterwards.

&reftitle.examples;

Listed examples may include `example.php`, which refers to the XML string found in the first example of the basic usage guide.

### Create a SimpleXMLElement object

    <?php

    include 'example.php';

    $sxe = new SimpleXMLElement($xmlstr);
    echo $sxe->movie[0]->title;

    ?>

&example.outputs;

    PHP: Behind the Parser

### Create a SimpleXMLElement object from a URL

    <?php

    $sxe = new SimpleXMLElement('http://example.org/document.xml', NULL, TRUE);
    echo $sxe->asXML();

    ?>

&reftitle.seealso;

- simplexml.examples-basic
- `simplexml_load_string`
- `simplexml_load_file`
- simplexml.examples-errors
- `libxml_use_internal_errors`
- `libxml_set_streams_context`