WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

xmlwrite und DOM

 

Zenon
Forum-Guru

Forum-Guru


Beiträge: 292
Anmeldedatum: 20.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.03.2010, 12:11     Titel: xmlwrite und DOM
  Antworten mit Zitat      
Nachdem ich erfolgreich mit xmlread zugange bin, wollte ich jetzt meine Datenstruktur in einem XML-FIle speichern.

Eigentlich klappt das auch, nur eine Frage beantwortet die Matlab-Hilfe nicht:

Wie erstelle ich einen Childnode für einen gerade erstellten Childnode und weise ihm noch Text zu?

<Konfiguration>
<Parameter>Riesenente</Parameter>
</Konfiguration>

zu erstellen ist kein Problem...

aber

<Konfiguration>
<Parameter>
<Riesenente>200</Riesenente>
</Parameter>
</Konfiguration>

...bekomme ich nicht hin...

Riesenente kann ich in Parameter noch anlegen, aber die 200 bekomme ich nicht rein. Riesenente ist immer leer...oder es gibt einen Fehler...


Vielen Dank für Eure Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 23.03.2010, 14:29     Titel:
  Antworten mit Zitat      
Hallo

in DOM ist Reihenfolge, wie Elemente angehängt werden wichtig
also vielleicht bringt dich dieses Beispiel weiter:
Code:

%
%
docNode = com.mathworks.xml.XMLUtils.createDocument('Konfiguration');
docRootNode = docNode.getDocumentElement;
%
% Parameter Knoten anlegen
paramElement = docNode.createElement('Parameter');
%
% Enten Knoten anlegen  
enteElement  = docNode.createElement('Riesenente');
%
% zuerst Text Knoten  an Knoten Ente anhängen
enteElement.appendChild(docNode.createTextNode(sprintf('%d',200)));
%
% danach Knoten Ente an Parameter Knoten anhängen
paramElement.appendChild(enteElement);

% und dann das Ganze an Wurzel-Knoten anhängen
docRootNode.appendChild(paramElement);


% Save the sample XML document.
xmlFileName = [tempname,'.xml'];
xmlwrite(xmlFileName,docNode);
edit(xmlFileName);
 


Zuletzt bearbeitet von denny am 23.03.2010, 15:04, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Zenon
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 292
Anmeldedatum: 20.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.03.2010, 15:02     Titel:
  Antworten mit Zitat      
Danke Dir.Das Beispiel wäre für die MATLAB-Hilfe sinnvoller, weil man sich viel mehr davon ableiten kann. Auch wäre es nicht schlecht, die entstehende XML mal aufzuschreiben (in der Matlab-Hilfe). Beu nur klappt jetzt aber erstmal alles, vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen
 
myhome276
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 23.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.08.2010, 13:11     Titel: Mal ein XML Beispiel mehr
  Antworten mit Zitat      
Es ist zwar nicht mehr nötig für deine Frage, aber für die Allgemeinheit bestimmt net verkehrt. Ich habe mir ständig überlegt, wie das mit den Knoten denn gehen soll, weil wirklich fast nichts dazu zu finden ist. Evil or Very Mad Nur durch rumprobieren und durch herausfinden der Bedeutung einzelner Befehle bin ich weitergekommen.

In dem Beispiel seht ihr zuerst den XML-Tree der entstehen soll und danach den Code für Matlab.

Frohes Gelingen beim rumprobieren.

Btw: weiß eigentlich jemand, wofür die erste Zeile steht?
docNode = com.mathworks.xml.XMLUtils.createDocument();


Code:

<?xml version="1.0" encoding="utf-8"?>
<Familie>
   <Grosseltern_1>
      <Onkel_und_Tante_1>
         <Cousin_1/>
         <Cousin_2>Der Da</Cousin_2>
      </Onkel_und_Tante_1>
      <Vater>
         <Bruder/>
      </Vater>
   </Grosseltern_1>
   <Grosseltern_2>
      <Mutter>
         <Schwester/>
      </Mutter>
      <Onkel_und_Tante_2>
         <Cousin_3/>
         <Cousin_4/>
      </Onkel_und_Tante_2>
      <Onkel_und_Tante_3>
         <Cousin_5/>
         <Cousin_6/>
         <Cousin_7/>
      </Onkel_und_Tante_3>
   </Grosseltern_2>
</Familie>
 

Code:

docNode = com.mathworks.xml.XMLUtils.createDocument('Familie');
docRootNode = docNode.getDocumentElement;

%
% left side of tree
%

grandParentsElement = docNode.createElement('Grosseltern_1');
docRootNode.appendChild(grandParentsElement);

parentsElement = docNode.createElement('Onkel_und_Tante_1');
grandParentsElement.appendChild(parentsElement);

childElement = docNode.createElement('Cousin_1');
parentsElement.appendChild(childElement);

childElement = docNode.createElement('Cousin_2');
childElement.appendChild(docNode.createTextNode(sprintf('Der Da')));
parentsElement.appendChild(childElement);

parentsElement = docNode.createElement('Vater');
grandParentsElement.appendChild(parentsElement);

childElement = docNode.createElement('Bruder');
parentsElement.appendChild(childElement);

%
% right side of tree
%

grandParentsElement = docNode.createElement('Grosseltern_2');
docRootNode.appendChild(grandParentsElement);

parentsElement = docNode.createElement('Mutter');
grandParentsElement.appendChild(parentsElement);

childElement = docNode.createElement('Schwester');
parentsElement.appendChild(childElement);

parentsElement = docNode.createElement('Onkel_und_Tante_2');
grandParentsElement.appendChild(parentsElement);

childElement = docNode.createElement('Cousin_3');
parentsElement.appendChild(childElement);

childElement = docNode.createElement('Cousin_4');
parentsElement.appendChild(childElement);

parentsElement = docNode.createElement('Onkel_und_Tante_3');
grandParentsElement.appendChild(parentsElement);

childElement = docNode.createElement('Cousin_5');
parentsElement.appendChild(childElement);

childElement = docNode.createElement('Cousin_6');
parentsElement.appendChild(childElement);

childElement = docNode.createElement('Cousin_7');
parentsElement.appendChild(childElement);


xmlFileName = [tempname, '.xml'];
% Write XML-File with filename given by xmlFileName, docNode = Root Element as
% highest ranking node
xmlwrite(xmlFileName, docNode);
edit(xmlFileName);
 

_________________

.: Cocktails - sind sie zu stark, bist du zu schwach :.
.: Cocktails - einer kommt selten allein :.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.