XML Tutorial und Fragen zu XML und PB...
XML Tutorial und Fragen zu XML und PB...
Hallo.
Nun stellt euch mal vor : Von XML kein Plan.
HTML Kenntnisse sind vorhanden (die Basics halt).
Habt ihr evt. im Web irgendwo ein leicht verdauliches XML Einsteigertutorial in Deutsch gefunden ?
Nun stellt euch mal vor : Von XML kein Plan.
HTML Kenntnisse sind vorhanden (die Basics halt).
Habt ihr evt. im Web irgendwo ein leicht verdauliches XML Einsteigertutorial in Deutsch gefunden ?
Zuletzt geändert von Bisonte am 08.10.2008 02:38, insgesamt 1-mal geändert.
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
-
- Beiträge: 40
- Registriert: 19.12.2006 18:38
Da ich google schon bemüht habe (ohne mir sichtbaren Erfolg) hab ich hier mal nachgefragt .... Kann ja sein das irgendjemand, irgendwie und irgendwann mal eins aufgetan hätte 
Aber davon ab... Das Beispiel in der Hilfe für die XML Nutzung ist ja gruselig... Sind die Pointer nötig ?
Ich möchte eigentlich nur "CivIV" XML Dateien manipulieren und das sieht
mir sehr simpel aus.
Mit Strings ist das ja alles kein Problem , aber wozu gibts denn die XML unterstützung in PB ?
Man muss ja auch mal nen anderen weg nach Rom beschreiten

Aber davon ab... Das Beispiel in der Hilfe für die XML Nutzung ist ja gruselig... Sind die Pointer nötig ?
Ich möchte eigentlich nur "CivIV" XML Dateien manipulieren und das sieht
mir sehr simpel aus.
Mit Strings ist das ja alles kein Problem , aber wozu gibts denn die XML unterstützung in PB ?
Man muss ja auch mal nen anderen weg nach Rom beschreiten

PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
Die sind eigentlich recht einfach gestrickt, es gibt nur sehr viele
(Modding) von denen und die sind auch recht gross.
Aus Urheberrechtlichen Gründen werd ich hier mal keine von den Dateien
posten (wer weiss vielleicht ists ja doch erlaubt, aber sicher bin ich mir
halt nicht.)
Aber im Prinzip ist das immer so...
so sind die im prinzip aufgebaut. Eigentlich per stringfunktionen locker
machbar, nur würd ich gern mal sehen ob das XML nicht sinnvoller ist
dafür (und vielleicht noch für andere sachen)
Sinn und Zweck ist halt z.B. ein Einheiten-Editor oder ein MapEditor usw...
um der Horde der Civ4 Modder ein wenig die Arbeit zu erleichtern
(Modding) von denen und die sind auch recht gross.
Aus Urheberrechtlichen Gründen werd ich hier mal keine von den Dateien
posten (wer weiss vielleicht ists ja doch erlaubt, aber sicher bin ich mir
halt nicht.)
Aber im Prinzip ist das immer so...
Code: Alles auswählen
<Einheiten>
<Einheit>wert</Einheit>
<Angriff>wert</Angriff>
</Einheiten>
machbar, nur würd ich gern mal sehen ob das XML nicht sinnvoller ist
dafür (und vielleicht noch für andere sachen)
Sinn und Zweck ist halt z.B. ein Einheiten-Editor oder ein MapEditor usw...
um der Horde der Civ4 Modder ein wenig die Arbeit zu erleichtern

PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Das ist doch sehr einfach gestrickt, keine Attribute u. ä.
Einfach durch den Baum wandern und mit GetXMLNodeText die Werte
erfragen.
Einfach durch den Baum wandern und mit GetXMLNodeText die Werte
erfragen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Meinst du das wie mit NextDatabaseRow oder NextDirectoryEntry ?
das klingt dann in der tat simpel ...
das klingt dann in der tat simpel ...
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Genauso meine ich, aber ohne DatabaseBisonte hat geschrieben:Meinst du das wie mit NextDatabaseRow oder NextDirectoryEntry ?
das klingt dann in der tat simpel ...

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Ja, nee ! Is Klarts-soft hat geschrieben: Genauso meine ich, aber ohne Database

PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
nunja, dann wird es nicht möglich sein, Dir ein lauffähiges Beispiel zuBisonte hat geschrieben:Aus Urheberrechtlichen Gründen werd ich hier mal keine von den Dateien
posten (wer weiss vielleicht ists ja doch erlaubt, aber sicher bin ich mir
halt nicht.)
zeigen.
Vom Prinzip her kannst Du wie folgt vorgehen:
Code: Alles auswählen
Structure s_Einheiten
Einheit.s
Angriff.s
EndStructure
NewList Einheiten.s_Einheiten()
oXML = LoadXML(#PB_Any, "[deinpfad]\CivIV.XML")
If oXML
NodeCounter = 1
Repeat
oNodeEinheiten = XMLNodeFromPath(RootXMLNode(oXML), "[DeinKompletterNodePfad]/Einheiten[" + Str(NodeCounter) + "]")
If oNodeEinheiten = 0 : Break : EndIf
AddElement(Einheiten())
oNodeEinheit = XMLNodeFromPath(oNodeEinheiten, "Einheit")
If oNodeEinheit
Einheiten()\Einheit = GetXMLNodeText(oNodeEinheit)
EndIf
oNodeAngriff = XMLNodeFromPath(oNodeEinheiten, "Angriff")
If oNodeAngriff
Einheiten()\Angriff = GetXMLNodeText(oNodeAngriff)
EndIf
NodeCounter + 1
ForEver
FreeXML(oXML)
EndIf
kompletten Pfad in XMLNodeFromPath() eintragen (also nicht nur
"Einheiten"...).
Ich denke, dass der Code nicht allzu schwierig zu verstehen sein sollte.
Falls dennoch Fragen sind: immer her damit!
Grüße ... Kiffi
// Edit: Kleinen Fehler behoben
Zuletzt geändert von Kiffi am 30.08.2008 10:44, insgesamt 1-mal geändert.
a²+b²=mc²