PHP içine XML olarak kabul form textarea XML metin ... nasıl?

1 Cevap php

PHP bunu yapmak için kolay bir yolu var mı? Nasıl PHP XML olarak almak form textarea, XML olarak biçimlendirilmiş düz metin almak ve var? Ben bir XML nesnesi var sonra ağaç yürümek nasıl öğrenebilirsiniz.


Sadece bu örnek xml ilgili richsage tekniğini denedi:

<?xml version="1.0"?>

<videocollection>
    <title id="1">Tootsie</title>
    <genre>comedy</genre>
    <year>1982</year>
    <language>English</language>
    <cast>Dustin Hoffman</cast>
    <cast>Jessica Lang</cast>
    <cast>Teri Gar</cast>
    <cast>Sydney Pollak</cast>
    <crew>
      <director>Sydney Pollak</director>
    </crew>

    <title id="2">Jurassic Park</title>
    <genre>science fiction</genre>
    <year>1993</year>
    <language>English</language>
    <cast>Sam Neil</cast>
    <cast>Laura Dern</cast>
    <cast>Jeff Goldblum</cast>
    <crew>
      <director>Steven Spielberg</director>
    </crew>

    <title id="3">Mission Impossible</title>
    <genre>action</genre>
    <year>1996</year>
    <language>English</language>
    <cast>Tom Cruise</cast>
    <cast>Jon Voight</cast>
    <cast>Emmanuelle Beart</cast>
    <cast>Jean Reno</cast>
    <crew>
      <director>Brian de Palma</director>
    </crew>
</videocollection>

İşte benim kod:

<html>
<head><title></title></head>
<body>
</body>

<?php
echo $_SERVER['PHP_SELF'];
$in_xml=$_POST['in_xml'];
if ($in_xml) {
    print "We got it!...";// . $in_xml;
    $doc = new DOMDocument();
    $doc->loadXML( $in_xml);
} else {
?>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<textarea name="in_xml" cols="40" rows="10">
  Enter your comment here
</textarea>
<input type="submit" value="Submit">
<?php
}
?>

</html>

Got a whole bunch of warnings: Warning: DOMDocument::loadXML() [domdocument.loadxml]: String not started expecting ' or " in Entity, line: 1 in /Library/WebServer/Documents/sandbox/parse_xml/index.php on line 12

Uyarı: DOMDocument :: loadXML () [domdocument.loadxml]: İdarece hatalı biçimlendirilmiş bir bildirim bekliyor sürümü, satır: 12 hattı üzerinde 1 / Library / WebServer / Documents / sandbox / parse_xml / index.php

Uyarı: DOMDocument :: loadXML () [domdocument.loadxml]: burada İdarece gerekli Blank, satır: 12 hattı üzerinde 1 / Library / WebServer / Documents / sandbox / parse_xml / index.php

Uyarı: DOMDocument :: loadXML () [domdocument.loadxml]: ayrıştırma XML bildirimi: '>' Varlık, çizgi bekleniyor: hat 12 1 / Library / WebServer / Documents / sandbox / parse_xml / index.php

Uyarı: DOMDocument :: loadXML () [domdocument.loadxml]: ÖznitDeğeri: "veya 'Varlık, çizgi bekleniyor: hat 12 4 / Library / WebServer / Documents / sandbox / parse_xml / index.php

Uyarı: DOMDocument :: loadXML () [domdocument.loadxml]: 12 hattı üzerine 4 / Library / WebServer / Documents / sandbox / parse_xml / index.php: özellikler Varlık, çizgi hatası inşa

Uyarı: DOMDocument :: loadXML () [domdocument.loadxml]: Başlangıç ​​Etiket, başlık satırında 4 sonunu bulamadı Varlık içinde, satır: 12 hattı üzerine 4 / Library / WebServer / Documents / sandbox / parse_xml / index.php

Uyarı: DOMDocument :: loadXML () [domdocument.loadxml]: Açılış ve tag uyuşmuyor: videocollection hattı 3 ve İdarece başlık, satır: 12 hattı üzerine 4 / Library / WebServer / Documents / sandbox / parse_xml / index.php

Uyarı: DOMDocument :: loadXML () [domdocument.loadxml]: 12 hattı üzerine 5 / Library / WebServer / Documents / sandbox / parse_xml / index.php: Varlık, hat belgenin sonundaki Ek içerik

1 Cevap

Siz PHP DOMDocument sınıfını kullanabilirsiniz:

$doc = new DOMDocument();
$doc->loadXML($yourXML);

$ yourXML Eğer ($ _POST veya benzeri yoluyla örneğin) formunuza elde ettik XML veri olduğu. Eğer bu var sonra, size anlatıldığı gibi nesne yürümek, ya da istediğiniz gibi unsurları gezinmek ve seçmek için XPath veya benzer kullanabilirsiniz.