A. Php dosyasında XML PHP değişkenleri Passing

2 Cevap php
<?php

include "../music/php/logic/core.php";
include "../music/php/logic/settings.php";
include "../music/php/logic/music.php";
$top = "At world's end";


// create doctype
$dom = new DOMDocument("1.0");

header("Content-Type: text/xml");

?>

<music>
<?php $_xml = "<title>".$top."</title>";
echo $_xml; ?>
</music>

I'm using this code to generate a dynamic XML document. The file is saved as PHP. My problem is that I can't echo php variables into the xml. However I can echo "literal" type text. I can't see anything wrong with my approach, it just doesn't work!

Ben bu yüzden muhtemelen ışıl ışıl basit bir şey kaçırdığınızı XML için oldukça yeni.

Ben de çizgiler gibi denedim:

<title><?php echo $top; ?></title>

2 Cevap

DOM bu şekilde kullanmayın. Sen tüm belge oluşturmak için DOM API kullanın:

$doc   = new DOMDocument();
$books = $doc->createElement( "books" );
$doc->appendChild( $books );
// ...

Bkz:


Daha ayrıntılı bir örnek (DOM ile üreten XHTML)

// Create head element
$head = $document->createElement('head');
$metahttp = $document->createElement('meta');
$metahttp->setAttribute('http-equiv', 'Content-Type');
$metahttp->setAttribute('content', 'text/html; charset=utf-8');
$head->appendChild($metahttp);

Bu bak tutorial on how to use DOM for XHTML. Kodun yeniden kullanımı için, olabilir write your own classes extending DOM classes to get configurable components.


Eğer DOM kullanmak veya XML oluşturmak için düz metin kullanmak istediğiniz istemiyorsanız, sadece, başka bir şablon gibi örneğin yaklaşım

<root>
    <albums>
        <album id="<?php echo $albumId; ?>">
            <title><?php echo $title; ?></title>
            ... other elements ...
        </album>
    </albums>
</root>

Ben echo ($ _xml) olduğunu düşünüyorum;