PHP.mk документација

dom_import_simplexml

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.dom-import-simplexml.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.dom-import-simplexml.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
dom_import_simplexml

Референца за `function.dom-import-simplexml.php` со подобрена типографија и навигација.

function.dom-import-simplexml.php

dom_import_simplexml

класата mysqli_driver

dom_import_simplexml Добива еден DOMAttr or DOMElement објект од SimpleXMLElement object

= NULL

dom_import_simplexml(object $node): DOMAttr|DOMElement

This function takes the given attribute or element node Оваа функција го зема дадениот атрибут или елемент SimpleXMLElementDOMAttr or DOMElement инстанца) и создава DOMNode јазол, соодветно. Новиот SimpleXMLElement.

Параметри

node

се однесува на истиот основен XML јазол како SimpleXMLElement Атрибутот или елементниот јазол за увоз (а

Вратени вредности

На DOMAttr or DOMElement.

Дневник на промени

Верзија = NULL
8.0.0 Оваа функција повеќе не враќа null при неуспех.

Примери

инстанца). dom_import_simplexml()

<?php

$sxe
= simplexml_load_string('<books><book><title>blah</title></book></books>');

if (
$sxe === false) {
echo
'Error while parsing the document';
exit;
}

$dom_sxe = dom_import_simplexml($sxe);
if (!
$dom_sxe) {
echo
'Error while converting XML';
exit;
}

$dom = new DOMDocument('1.0');
$dom_sxe = $dom->importNode($dom_sxe, true);
$dom_sxe = $dom->appendChild($dom_sxe);

echo
$dom->saveXML();

?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

<?xml version="1.0"?>
<books><book><title>blah</title></book></books>

Пример #1 Увоз SimpleXML во DOM со

Пример #2 Увоз SimpleXML во DOM и модифицирање на SimpleXML преку DOM

<?php

$sxe
= simplexml_load_string('<books><book><title>blah</title></book></books>');
$elt = dom_import_simplexml($sxe);
$elt->setAttribute("foo", "bar");
echo
$sxe->asXML();

?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

<?xml version="1.0"?>
<books foo="bar"><book><title>blah</title></book></books>

Види Исто така

Белешки од корисници 5 белешки

Ракувањето со грешки е изоставено за краткост.
пред 18 години
justinpatrin at php dot net:
> To get a proper DOM document (which you need to do most things) you need...

No you don't. Just do: 
<?php
$dom = dom_import_simplexml($xml)->ownerDocument;
?>
crescentfreshpot at yahoo dot com
пред 5 години
//No need to initiate, import and append on example#1

(...)
$dom_sxe = dom_import_simplexml($sxe);
if (!$dom_sxe) {
    echo 'Erreur lors de la conversion du XML';
    exit;
}

//$dom = new DOMDocument('1.0');
//$dom_sxe = $dom->importNode($dom_sxe, true);
//$dom_sxe = $dom->appendChild($dom_sxe);

//use ownerDocument propertie 
echo $dom->ownerDocument->saveXML();

?>
h4ss4n3 at hyj4z1 dot me
пред 17 години
SimpleXML is an 'Object Mapping XML API'. It is not DOM, per se. SimpleXML converts the XML elements into PHP's native data types.

The dom_import_simplexml and simplexml_import_dom functions do *not* create separate copies of the original object. You are free to use the methods of either or both interchangeably, since the underlying instance is the same.

<?php
    // initialize a simplexml object
    $sxe = simplexml_load_string('<root/>');
    
    // get a dom interface on the simplexml object
    $dom = dom_import_simplexml($sxe);

    // dom adds a new element under the root
    $element = $dom->appendChild(new DOMElement('dom_element'));
    
    // dom adds an attribute on the new element
    $element->setAttribute('creator', 'dom');

    // simplexml adds an attribute on the dom element
    $sxe->dom_element['sxe_attribute'] = 'added by simplexml';

    // simplexml adds a new element under the root
    $element = $sxe->addChild('sxe_element');
    
    // simplexml adds an attribute on the new element
    $element['creator'] = 'simplexml';

    // dom finds the simplexml element (via DOMNodeList->index)
    $element = $dom->getElementsByTagName('sxe_element')->item(0);

    // dom adds an attribute on the simplexml element
    $element->setAttribute('dom_attribute', 'added by dom');
    
    echo ('<pre>');            
    print_r($sxe);
    echo ('</pre>');
?>

Outputs:

SimpleXMLElement Object
(
    [dom_element] => SimpleXMLElement Object
        (
            [@attributes] => Array
                (
                    [creator] => dom
                    [sxe_attribute] => added by simplexml
                )

        )

    [sxe_element] => SimpleXMLElement Object
        (
            [@attributes] => Array
                (
                    [creator] => simplexml
                    [dom_attribute] => added by dom
                )

        )

)

What this illustrates is that both interfaces are operating on the same underlying object instance. Also, when you dom_import_simplexml, you can create and add new elements without reference to an ownerDocument (or documentElement).

So passing a SimpleXMLElement to another method does not mean the recipient is limited to using SimpleXML methods.
 
Hey Presto! Your telescope has become a pair of binoculars!
Jeff M
19 години пред
I've found that newer versions of PHP5 require some special syntax in order to properly convert between SimpleXML and DOM. It's not as easy as calling dom_import_simplexml() with a SimpleXML node. To get a proper DOM document (which you need to do most things) you need:
<?php
//$xml is a SimpleXML instance
$domnode = dom_import_simplexml($xml);
$dom = new DOMDocument();
$domnode = $dom->importNode($domnode, true);
$dom->appendChild($domnode);
?>

Switching back, though, is, well...simple.

<?php
//$dom is a DOMDocument instance
$xml = simplexml_import_dom($dom);
?>
justinpatrin at php dot net
пред 9 години
Very useful to add a CDATA node with SimpleXMLElement (use it like addChild) :

<?php
class My_SimpleXMLElement extends SimpleXMLElement {
    
    public function addChildWithCData($name, $value = NULL) {
        $new_child = $this->addChild($name);
        
        $node = dom_import_simplexml($new_child); 
        $no = $node->ownerDocument; 
        $node->appendChild($no->createCDATASection($value)); 
    
        return $new_child;
    }
}
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.