zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden PHP: Eine XML-Datei in die andere einbinden

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 07.04.2007, 22:54
Content-type: x/user
neuer user
Thread-Ersteller
 
Registriert seit: 26.05.2006
Beiträge: 51
X-User befindet sich auf einem aufstrebenden Ast
Standard PHP: Eine XML-Datei in die andere einbinden

Wie gebe ich mit PHP eine XML Datei aus, in der Daten einer anderen XML Datei sind? Ich benutze dazu SimpleXML.

Code:
$xml1->content = $xml2->content;
funktioniert nicht.

edit: Das hier funktioniert: PHP: DomDocument->xinclude - Manual
Allerdings gibt es zusätzlich
Code:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:base="data.xml"
aus. Wie sorge ich dafür, dass das nicht ausgegeben wird?

Geändert von X-User (10.04.2007 um 18:28 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 09.04.2007, 20:18
Content-type: x/user
neuer user
Thread-Ersteller
 
Registriert seit: 26.05.2006
Beiträge: 51
X-User befindet sich auf einem aufstrebenden Ast
Standard

Mhh.. Ich versuchs lieber mit SimpleXML. Ich habe gerade herausgefunden, dass man bei SimpleXML das Root-Element weglässt, da es ja nur ein einziges gibt. Doch dann kam wieder das alte Problem.
Hier jemand mit dem gleichen Problem:
Zitat:
Is there an easy way to combine SimpleXML objects?

Something Like:

$a = simplexml_load_string('<a><b/></a>');
$c = simplexml_load_string('<c><d>Foo</d></c>');
$a->b = $c->d;
print_r($a);

Here's what I get:

Warning: It is not possible to assign complex types to nodes in
D:\...\test.php on line 5
Wie funktioniert das nun?

edit: Zur Veranschaulichung:
PHP-Code:
<?php
$xml 
'<?xml version="1.0" encoding="utf-8"?><xml><tag>Hallo Welt!</tag></xml>';
$xml = new SimpleXMLElement($xml);
var_dump($xml->tag);
echo 
"\n";
var_dump("Hallo Welt!");
?>
gibt folgendes aus:
Code:
object(SimpleXMLElement)#2 (1) {
  [0]=>
  string(11) "Hallo Welt!"
}

string(11) "Hallo Welt!"
Wie holt man sich nun den String aus dem Objekt?

edit: Mit
PHP-Code:
$a preg_replace(array('~(<tag(.*)>)~Uis''~(<\/tag>)~Uis'), ''$xml->tag->asXML()); 
geht es
Weiß jemand wie es einfacher geht? Vielleicht mit DOMDocument?

Geändert von X-User (09.04.2007 um 21:16 Uhr)
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 10.04.2007, 18:23
Content-type: x/user
neuer user
Thread-Ersteller
 
Registriert seit: 26.05.2006
Beiträge: 51
X-User befindet sich auf einem aufstrebenden Ast
Standard

Ich habe mir eine Funktion geschrieben:

PHP-Code:
function getContent($xml) {
  
$tagname $xml->children()->getName();
  
$string preg_replace(array('~(<'.$tagname.'(.*)>)~Uis''~(<\/'.$tagname.'>)~Uis'), ''$xml->asXML());
  return 
$string;

Problem gelöst. Vielen Dank fürs Lesen.

Geändert von X-User (10.04.2007 um 18:39 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 10.04.2007, 19:39
Alles- & Nixkönne
XHTMLforum-Mitglied
 
Registriert seit: 05.10.2006
Ort: Hamburg
Beiträge: 156
Ernie wird schon bald berühmt werden
Standard

Ich denke mal
Code:
$string=(string) $xml->tag;
wäre wohl wesentlich einfacher gewesen, oder?

Für dein ursprüngliches Problem könnte das hier ein brauchbarer Lösungsansatz sein:

PHP: SimpleXMLElement->addChild() - Manual

(ich meine die User Contribution ganz am Ende)
Mit Zitat antworten
  #5 (permalink)  
Alt 29.05.2007, 16:36
Content-type: x/user
neuer user
Thread-Ersteller
 
Registriert seit: 26.05.2006
Beiträge: 51
X-User befindet sich auf einem aufstrebenden Ast
Standard

@Ernie

Ja. Bevor ich deinen Post gelesen habe, habe ich das mit dem (string) selber herausgefunden. Warum hat mir das keiner früher gesagt...
Mit Zitat antworten
  #6 (permalink)  
Alt 29.05.2007, 17:10
Benutzerbild von netspy
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 13.08.2004
Ort: Leipzig
Beiträge: 1.953
netspy sorgt für eine eindrucksvolle Atmosphärenetspy sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von X-User Beitrag anzeigen
Ja. Bevor ich deinen Post gelesen habe, habe ich das mit dem (string) selber herausgefunden. Warum hat mir das keiner früher gesagt...
Warum hast du nicht einfach in die Doku geschaut?

PHP: SimpleXML functions - Manual (Beispiel 1984. Vergleichen von Elementen und Attributen mit Text)
Zitat:
Um ein Element oder ein Attribut mit einem String zu vergleichen oder an eine Funktion zu übergeben, die einen String als Parameter benötigt, müssen Sie das Element respektive das Attribut in einen String casten. Verwenden Sie dafür (string), ansonsten behandelt PHP das Element als Objekt.
Mario
__________________
AppDev Blog · AppDev Forum
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mit JavaScript oder PHP die .css datei beschreiben Mugen87 Javascript & Ajax 3 20.11.2010 11:52
SOAP PHP und WSDL Datei ONeill Serveradministration und serverseitige Scripte 1 05.09.2010 20:26
Variable aus Datei in Klasse einbinden spacegaier Serveradministration und serverseitige Scripte 5 17.11.2007 00:41
[IIS6+PHP5] Andere Dateiendung trotzdem PHP Lockhead883 Serveradministration und serverseitige Scripte 1 29.04.2007 15:56
andere schriften einbinden dottore:skin Offtopic 4 26.07.2005 15:20


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:48 Uhr.