Mit InsertXMLStructure ein Array in eine XML-Struktur

Anfängerfragen zum Programmieren mit PureBasic.
Michael(362)
Beiträge: 16
Registriert: 28.07.2019 12:51

Mit InsertXMLStructure ein Array in eine XML-Struktur

Beitrag von Michael(362) »

Moin,
ich bin Anfänger in PureBasic. Zur Zeit teste ich die Demo-Version um zu Erfahren ob ich in PureBasic ein Visual Studio Projekt umsetzen kann.

Ich möchte eine Array-Structur als XML-Datei Speichern. Bis jetzt habe ich folgenden Code ausprobiert:

Code: Alles auswählen

Structure MP3_Titel
  Interpret.s
EndStructure
  
Structure MP3_Table
  Array MP3_Datei.MP3_Titel(1)
EndStructure

Define MP3.MP3_Table

MP3\MP3_Datei(0)\Interpret = "111111111111111"
MP3\MP3_Datei(1)\Interpret = "222222222222222"
  
If CreateXML(0)
  InsertXMLStructure(RootXMLNode(0), @MP3, MP3_Table)
  FormatXML(0, #PB_XML_ReFormat)
  Debug ComposeXML(0)
EndIf
Liefert Folgenden XML-Struktur:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-16"?>
<MP3_Table>
  <MP3_Datei>
    <element>
      <Interpret>111111111111111</Interpret>
    </element>
    <element>
      <Interpret>222222222222222</Interpret>
    </element>
  </MP3_Datei>
</MP3_Table>
Ich möchte aber die Struktur wie Folgt:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-16"?>
<MP3_Table>
  <MP3_Datei>
      <Interpret>111111111111111</Interpret>
  </MP3_Datei>
  <MP3_Datei>
      <Interpret>222222222222222</Interpret>
  </MP3_Datei>
</MP3_Table>
Kann mir Jemand helfen den Basic-Code so anzupassen, daß ich die gewünschte XML-Ausgabe bekomme?

mit Grüßen
Michael
Andesdaf
Moderator
Beiträge: 2659
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Re: Mit InsertXMLStructure ein Array in eine XML-Struktur

Beitrag von Andesdaf »

Dann kannst du InsertXMLStructure nicht nutzen, sondern musst dir deinen XML-Baum mit CreateXMLNode etc. selbst zusammenbauen.
Win11 x64 | PB 6.00 (x64)
Benutzeravatar
mk-soft
Beiträge: 3700
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Mit InsertXMLStructure ein Array in eine XML-Struktur

Beitrag von mk-soft »

Es ist am besten so die XML Ausgabe zu verwenden wie diese Insert oder Extract anfordert.
Macht die Sache viel einfacher...

Beispiel mit LinkedList

Code: Alles auswählen

Structure MP3_Titel
  Nummer.i
  TitelName.s
  Interpret.s
  Jahr.s
EndStructure
  
Structure MP3_Table
  DateiName.s
  AlbumName.s
  List Titel.MP3_Titel()
EndStructure

Global NewList MP3.MP3_Table()

AddElement(MP3())
MP3()\DateiName = "xxx2.mp3"
MP3()\AlbumName = "Album xyz"
AddElement(MP3()\Titel())
MP3()\Titel()\Nummer = 1
MP3()\Titel()\TitelName = "Titel 1"
MP3()\Titel()\Interpret = "Interpret John"
AddElement(MP3()\Titel())
MP3()\Titel()\Nummer = 2
MP3()\Titel()\TitelName = "Titel 2"
MP3()\Titel()\Interpret = "Interpret John"


AddElement(MP3())
MP3()\DateiName = "xxx2.mp3"
MP3()\AlbumName = "Album xyz 2"
AddElement(MP3()\Titel())
MP3()\Titel()\Nummer = 1
MP3()\Titel()\TitelName = "Titel 1"
MP3()\Titel()\Interpret = "Interpret John"

If CreateXML(0)
  InsertXMLList(RootXMLNode(0), MP3(), MP3_Table)
  FormatXML(0, #PB_XML_ReFormat)
  Debug ComposeXML(0)
EndIf
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Michael(362)
Beiträge: 16
Registriert: 28.07.2019 12:51

Re: Mit InsertXMLStructure ein Array in eine XML-Struktur

Beitrag von Michael(362) »

Vielen Dank für die Antworten.
Der Tip CreateXMLNode zu Verwenden war genau richtig.
Ich sollte die PureBasic-Hilfe besser durchlesen.

Gruß Michael
PureBasic 5.72 LTS (Windows - x86)
Windows 10 x86
Antworten