Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   Programmierung und Datenbanken (https://boardunity.de/programmierung-datenbanken-f23.html)
-   -   Xml (https://boardunity.de/xml-t1290.html)

MrNase 28.01.2004 14:28

Xml
 
Hey Leute :)

Ich hab ne Adressseite zu machen. Dafür wollte ich xml verwenden. Ich hab zwar ein sehr gutes Buch darüber (Nitty Gritty: XML) aber ich suche ein paar Tutorials im Internet.

Es sind momentan 35 Adressen, Ende ist aber offen.

Würd mich über Tipps und Links freuen :)

//edit:
möglichst kein php-parsing script ;) Tutorials reichen mir :)


gruß

worka 28.01.2004 16:13

An sich ist das Parsen von einfachen XML-Dokumenten mit PHP recht einfach. Tutorials findest du evtl. auf http://www.tutorials.de

Willst du das eigentlich mit PHP machen?

MrNase 28.01.2004 19:21

Ich habe es oben nochmal hinzugefügt. PHP sollte da nicht im Spiel sein.

ciruZ: ich hab mit XSLT schon angefangen aber mir fehlen ein paar praktische Beispiele :)

worka: da finde ich nix bzgl. XML/XSLT :(

Michael Przybyla 28.01.2004 19:47

http://xsl-rp.de/ - spitze Nachschlagwerk
http://dret.net/lectures/xml-ss02/ - Grundlagen, Prinzipien und Anwendungen
http://www.topxml.com/code/default.a...20010613074616 - Wenn man "Die Power der 2" mal braucht ;)
http://www.programmingtutorials.com/xml.aspx - Tutorials
http://xml.klute-thiemann.de/w3c-de/...und-attributen - W3C
http://www.liveimage.de/cgi-bin/yabb...num=1014058475 - Forum
http://www.zvon.org/xxl/XSLTreference/Output/index.html - ein weiteres Nachschlagwerk
http://www.developersdex.com/xml/default.asp?p=2493 - Tutorials


btw: Bei Verwendung von xslt + php sollte man bei input Feldern und disable-output-escaping aufpassen ;)

und nochmal btw: Wenn du `nen Beispiel anhand eines php + xml + xslt Forums brauchst, melde dich

MrNase 28.01.2004 20:00

wow danke, damit hab ich wohl mehr als brauchen werde ;)

Momentan brauche ich noch kein Beispiel, wie das ganze mit PHP funktioniert. Ich werde aber in Zukunft auf dein Angebot zurückkommen :)

Michael Przybyla 28.01.2004 20:57

Nimand sagt das. Es ist glaube ich jedem bewusst, dass sich das auch so lösen lässt. Nur hat man mit XML und XSLT nicht soviele Möglichkeiten (bitte jetzt nicht wieder darüber diskutieren, passt nicht zum Thema), wie mit php + xml + xslt (obwohl ich inzwischen diese Verbindung nicht mehr weiterempfehlen würde).

Und wenn du insbesondere auf dieses hier eingegangen bist:

Zitat:

btw: Bei Verwendung von xslt + php sollte man bei input Feldern und disable-output-escaping aufpassen

und nochmal btw: Wenn du `nen Beispiel anhand eines php + xml + xslt Forums brauchst, melde dich
Das war wie gesagt nur nebenbei erwähnt, und da ich mal ein Bulletin Board angefangen habe, welches auf php, xml und xslt aufbaut, dachte ich mir, da er ja nach praktischen Beispielen gefragt hat, ich erwähne es mal.

MrNase 29.01.2004 05:48

Hoi :)

Etwas worauf ich keine Antwort gefunden habe:

Ich hab verschiedene Branchen und in denen sind jeweils immer so ca. 30 Adressen.
Jedoch legt er jetzt für jede Adresse ne eigene Überschrift an (also z.B. 3x Maler wenn 3 Maler vorhanden sind.)
Wie kann ich alles mit <branche name="Maler"></branche> zusammen anzeigen?
Code:

<xsl:for-each select="firma/branche">
<h1><xsl:value-of select="@name"/></h1>
<table>
<tr>
<td><xsl:value-of select="firmenname"/></td>
<td><xsl:value-of select="ansprechpartner"/></td>
<td><xsl:value-of select="srasse"/></td>
<td><xsl:value-of select="plz"/></td>
<td><xsl:value-of select="ort"/></td>
</tr>
</table>
</xsl:for-each>


Michael Przybyla 29.01.2004 12:33

Ich verstehe dich nicht so richtig.

Würdest du das gerne so angezeigt bekommen ...

> Branche
> Müller
> Maler

anstatt so ...

> Branche
> Müller
> Maler
> Maler
> Maler

?

MrNase 29.01.2004 12:37

ja genau so will ich es :)

Also z.B. alle 'Müller' unter einer Überschrift zusammenfassen :)

Michael Przybyla 30.01.2004 15:22

Die einfachste und vorallem sinnvolste Lösung, wäre meiner Meinung nach folgende.

Ändere deine XML Datei nach folgendem Muster:
Code:

<firma>
<branche name="x">
<option>
<firmenname>x</firmenname>
<ansprechpartner>x</ansprechpartner>
</option>
<option>
<firmenname>x</firmenname>
<ansprechpartner>x</ansprechpartner>
</option>
</branche>
</firma>

Da ich lange Zeit nichts mehr mit XML/XSL(T) gemacht habe, geht mir auch nicht so `nen helles Licht auf.

Werde heute Abende noch mal schauen, ob ich `ne andere Möglichkeit finde.

Es wäre toll wenn es soetwas wie "distinct" geben würde, dann hätte ich noch 1 Möglichkeit.

Aber alles andere was mir noch einfällt, wäre zu umständlich und langsam.

MrNase 30.01.2004 15:50

Hey Michael!

Danke soweit, aber ich es will wohl nicht.
data.xml:
Code:

<?xml version="1.0"  encoding="ISO-8859-1" standalone="yes"?>
<?xml-stylesheet href="format.xsl" type="text/xsl"?>
<firma>
<branche name="x">
<option>
<firmenname>müller</firmenname>
<ansprechpartner>herr müller</ansprechpartner>
</option>
<option>
<firmenname>meier</firmenname>
<ansprechpartner>herr meier</ansprechpartner>
</option>
</branche>
<branche name="3">
<option>
<firmenname>müller</firmenname>
<ansprechpartner>herr müller</ansprechpartner>
</option>
<option>
<firmenname>meier</firmenname>
<ansprechpartner>herr meier</ansprechpartner>
</option>
<option>
<firmenname>schmidt</firmenname>
<ansprechpartner>herr schmidt</ansprechpartner>
</option>
</branche>
</firma>

format.xsl:
Code:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<head><title></title></head>
<body>
<xsl:for-each select="firma/branche/option">
<h1><xsl:value-of select="../@name"/></h1>
<table>
<tr>
<td><xsl:value-of select="firmenname"/></td>
<td><xsl:value-of select="ansprechpartner"/></td>
</tr>
</table>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>


Aber heraus kommt:
Code:

x
müller herr müller

x
meier herr meier

3
müller herr müller

3
meier herr meier

3
schmidt herr schmidt

:(

Michael Przybyla 30.01.2004 16:26

XSL Stylesheet
Code:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<head><title></title></head>
<body>
<xsl:for-each select="firma/branche">
<h1><xsl:value-of select="@name"/></h1>
<xsl:for-each select="option">
<table>
<tr>
<td><xsl:value-of select="firmenname"/></td>
<td><xsl:value-of select="ansprechpartner"/></td>
</tr>
</table>
</xsl:for-each>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

Ausgabe
Code:

x
müller herr müller
meier herr meier

3
müller herr müller
meier herr meier
schmidt herr schmidt


MrNase 30.01.2004 16:28

hey cool, danke :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:37 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25