PHP | DOMDocument xinclude() Function

Last Updated : 26 Feb, 2020
Comments
Improve
Suggest changes
Like Article
Like
Report
The DOMDocument::xinclude() function is an inbuilt function in PHP which is used to substitute the XIncludes in a DOMDocument Object. Syntax:
int DOMDocument::xinclude( int $options = 0 )
Parameters: This function accepts an optional single parameter $options which holds the libxml parameter. Return Value: This function returns the number of XIncludes in the document, -1 if some processing failed, or FALSE if there were no substitutions. Below examples illustrate the DOMDocument::xinclude() function in PHP: Example 1: In this program, we will include from XML from new.xml to index.php.
  • new.xml php
    <?xml version='1.0'?>
    <disclaimer>
      <p>
        This is the content from new.xml
        included using xinclude.
      </p>
    </disclaimer>
    
  • index.php php
    <?php
    $xml = <<<EOD
    <?xml version="1.0" ?>
    <root xmlns:xi="http://www.w3.org/2001/XInclude">
      <xi:include href="new.xml">
      </xi:include>
    </root>
    EOD;
    
    // Create a new DOMDocument
    $dom = new DOMDocument();
    
    // let's have a nice output
    $dom->preserveWhiteSpace = false;
    $dom->formatOutput = true;
    
    // load the XML string defined above
    $dom->loadXML($xml);
    
    // substitute xincludes
    $dom->xinclude();
    
    echo $dom->saveXML();
    ?>
    
  • Output:
    This is the content from new.xml included using xinclude.
Example 2: In this program, we will add a fallback if xinclude fails.
  • index.php php
    <?php
    $xml = <<<EOD
    <?xml version="1.0" ?>
    <root xmlns:xi="http://www.w3.org/2001/XInclude">
      <xi:include href="wrong_name.xml">
       <xi:fallback>
        <error>xml not found</error>
       </xi:fallback>
      </xi:include>
    </root>
    EOD;
    
    // Create a new DOMDocument
    $dom = new DOMDocument();
    
    // let's have a nice output
    $dom->preserveWhiteSpace = false;
    $dom->formatOutput = true;
    
    // load the XML string defined above
    $dom->loadXML($xml);
    
    // substitute xincludes
    $dom->xinclude();
    
    echo $dom->saveXML();
    ?>
    
  • Output:
    xml not found
Reference: https://www.php.net/manual/en/domdocument.xinclude.php

Next Article

Similar Reads