Seite 1 von 3
Problem bei ermitteln von XML Childs
Verfasst: 09.02.2008 11:45
von Scarabol
Hi Leute,
was kann man eigentlich mit der neuen XML Lib alles machen?
Kann ich damit HTML Dokumente bearbeiten?
Gruß
Scarabol
Re: XML & HTML ???
Verfasst: 09.02.2008 12:02
von Kiffi
Scarabol hat geschrieben:was kann man eigentlich mit der neuen XML Lib alles machen?
'ne ganze Menge.
Scarabol hat geschrieben:Kann ich damit HTML Dokumente bearbeiten?
das eher nicht.
Was hast Du denn genau vor?
Grüße ... Kiffi
Verfasst: 09.02.2008 12:17
von Scarabol
Verstehen wozu man XML braucht
Gruß
Scarabol
Verfasst: 09.02.2008 12:26
von Kiffi
Scarabol hat geschrieben:Verstehen wozu man XML braucht

ganz platt gesagt: XML kann man verwenden, um Daten in einer
strukturierten Form (ähnlich einer beliebigen Datenbank) zu speichern.
Guckstu vielleicht auch noch hier:
http://www.purebasic.fr/german/viewtopi ... 4662#84662
Etwas ausführlicher:
http://de.wikipedia.org/wiki/Extensible_Markup_Language
Wenn Du was spezielles mit der XML-Lib vorhast, dann frag einfach. Vielleicht
kann ich Dir dann sagen, ob sich XML dafür eignet oder nicht.
Grüße ... Kiffi
Verfasst: 09.02.2008 13:59
von Scarabol
Ich dachte ich könnte XML dazu verwenden, in HTML Art gespeicherte Dateien zu erstellen und zu bearbeiten...
Wie z.B: HTML

, oder Ogre-XML ect.
Gruß
Scarabol
Verfasst: 09.02.2008 14:02
von Kiffi
Scarabol hat geschrieben:Ich dachte ich könnte XML dazu verwenden, in HTML Art gespeicherte Dateien zu erstellen und zu bearbeiten...
ich habs zwar noch immer nicht kapiert, aber vielleicht hilft folgendes:
http://de.wikipedia.org/wiki/Extensible ... p_Language
und
http://de.selfhtml.org/html/xhtml/unterschiede.htm
Grüße ... Kiffi
Verfasst: 09.02.2008 14:06
von Scarabol
Jo also ich hab in der Ogre XML Datei folgendes stehen:
Code: Alles auswählen
<mesh>
<submeshes>
<submesh material="Material" usesharedvertices="false">
<faces count="164">
<face v1="0" v2="1" v3="3"/>
<face v1="1" v2="2" v3="3"/>
<face v1="4" v2="5" v3="7"/>
<face v1="5" v2="6" v3="7"/>
<face v1="8" v2="9" v3="11"/>
<face v1="9" v2="10" v3="11"/>
<face v1="12" v2="13" v3="15"/>
<face v1="13" v2="14" v3="15"/>
<face v1="16" v2="17" v3="19"/>
<face v1="17" v2="18" v3="19"/>
<face v1="20" v2="21" v3="23"/>
<face v1="21" v2="22" v3="23"/>
<face v1="24" v2="25" v3="27"/>
<face v1="25" v2="26" v3="27"/>
<face v1="28" v2="29" v3="30"/>
<face v1="28" v2="30" v3="31"/>
<face v1="32" v2="33" v3="34"/>
<face v1="32" v2="34" v3="35"/>
<face v1="36" v2="37" v3="39"/>
<face v1="37" v2="38" v3="39"/>
<face v1="40" v2="41" v3="42"/>
....
Kann ich sowas mit XML in ein Array face() laden?
Gruß
Scarabol
Verfasst: 09.02.2008 16:37
von Kiffi
Scarabol hat geschrieben:Kann ich sowas mit XML in ein Array face() laden?
yepp, kannste:
Code: Alles auswählen
Structure s_Face
v1.l
v2.l
v3.l
EndStructure
oXML = LoadXML(#PB_Any, "D:\Ogre.xml")
If oXML
; Anzahl 'faces' ermitteln
oNode = XMLNodeFromPath(RootXMLNode(oXML), "mesh/submeshes/submesh/faces")
If oNode
If ExamineXMLAttributes(oNode)
While NextXMLAttribute(oNode)
If XMLAttributeName(oNode) = "count"
FacesCount = Val(XMLAttributeValue(oNode))
Break
EndIf
Wend
EndIf
EndIf
Debug "Anzahl Faces: " + Str(FacesCount)
Dim Face.s_Face(FacesCount)
For FaceCounter = 0 To FacesCount
oNode = XMLNodeFromPath(RootXMLNode(oXML), "mesh/submeshes/submesh/faces/face[" + Str(FaceCounter) + "]")
If oNode
If ExamineXMLAttributes(oNode)
While NextXMLAttribute(oNode)
Select XMLAttributeName(oNode)
Case "v1" : Face(FaceCounter)\v1 = Val(XMLAttributeValue(oNode))
Case "v2" : Face(FaceCounter)\v2 = Val(XMLAttributeValue(oNode))
Case "v3" : Face(FaceCounter)\v3 = Val(XMLAttributeValue(oNode))
EndSelect
Wend
EndIf
EndIf
Next
FreeXML(oXML)
EndIf
(muss evtl. noch angepasst werden (je nachdem, ob die Anzahl Faces nullbasiert sind))
Grüße ... Kiffi
Verfasst: 09.02.2008 16:45
von milan1612
@Kiffi
Super anschaulich, langsam versteh selbst ich PB's XML Lib
Danke...
Verfasst: 09.02.2008 18:08
von STARGÅTE
mich stört nur das hier:
Wichtig: Die expat Lizenz erfordert, dass eine Copyright-Notiz und der Lizenz-Text selbst in jede Software integriert werden, welche den Parser beinhalten. Wenn also die Bibliothek (oder der API-Import) in einer Software verwendet werden, welche öffentlich zugänglich gemacht wird, dann MUSS die oben verlinkte Lizenz in die Software integriert werden.