Wie war das nochmal mit XML
lima-city → Forum → Programmiersprachen → Basic
beginnen
boy
button
code
datei
eckigen klammern
file
grundlage
import
inhalt
klasse
label
list
motivation
pack
pfad
tag
type
zufall
zufallsgenerator
-
Wie war es nochmal mit diesen XML tag/datei">Dateien?
<?xml version="1.0" encoding="UTF-8"?> <dataroot xmlns:od="urn:schemas-microsoft-com:officedata" generated="2009-05-14T11:21:34"> <Boy> <name>John</name> </Boy> <Boy> <name>James</name> </Boy> <Boy> <name>William</name> </Boy> <Boy> <name>Robert</name> </Boy> <Boy> <name>Joseph</name> </Boy> <Boy> <name>David</name> </Boy>
Wie kann ich diesen Wert zuweisen? Also das Der Name James seine kann oder John?
Also Name = Boy.xml
vlt weis jmd was ich meine, der wert soll der Computer aus der Liste auswählen & anzeigen am besten per Zufall immer wenn ich auf einem Button klick.
schöne grüße
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
auslesen kannst du die werte (im javascript) mit ***.getElementsByTagName('Boy'), dabei steht *** für deine XML-Datei. diese methode liefert dir ein array mit allen "Boy"-Tags. den inhalt des ersten tags bekommst du dann beispielsweise mit ***.getElementsByTagName('Boy')[0].firstChild.nodeValue. für einen zufälligen namen also statt der "0" in den eckigen klammern eine generierte zufallszahl einsetzen...
Beitrag zuletzt geändert: 17.7.2009 19:53:34 von philval -
Wie binde ich denn Java in VB eine?
-
Ad 1 : Java != Javascript.
Ad 2 : Warum willst du Java von VB aus aufrufen? VB bringt bestimmt eigene XML-Klassen mit oder es gibt welche im iNet.
Ad 3 : Ich würde dir gerne helfen, nur leider verstehe ich - dank sehr innovativer Nutzung der deutschen Sprache - dein erstes Post nicht.
Wie kann ich diesen Wert zuweisen?
Was willst du wem zuweisen? Willst du einer Variablen den Inhalt des XML zuweisen? Willst du einem Tag im XML einen Wert zuweisen? Willst du einer Variablen den Wert eines Tags des XML zuweisen? -
Ich schreibe manchmal in Aufregung ein bisschen komisch.
Was ich meine ich möchte eine Namegenerator bauen. Der soll per Zufall kommen also immer wenn auf den Button Klickt.
Vorher einscheidet man in einer pulldownbox ob Junge oder Mädchen name im Label kommen soll. wie mache ich das. -
OK, verstanden.
Ich nehme also an, du hast als Grundlage eine XML-Datei mit vielen <boy> und <girl> tags, die jeweils ein <name> tag unter sich haben.
Mittels der Klassen von System.XML (ist von Microsoft und Teil von .NET) parst du diese Eingangsdatei und baust dir 2 Arrays auf, einen für Männernamen und einen für Frauennamen.
Im Eventhandler von deinem Button, erzeugst du dir eine Zufallszahl (entweder zwischen 0 und der Länge des entsprechenden Arrays minus 1; oder falls die API das nicht hergibt, dann eben eine Gleitkommazahl aus [0; 1[ (das kann jeder Zufallsgenerator, den ich kenne) und multipliziert das mit der Arraylänge). Danach holst du dir das n-te Element des Arrays, wobei n deine Zufallszahl ist. Voilà. -
Ich nehme also an, du hast als Grundlage eine XML-Datei mit vielen <boy> und <girl> tags, die jeweils ein <name> tag unter sich haben.
Ja genau.
Ich kann es mir fast vorstellen.Darf ich nach eine code beispiel Fragen? Die name sollen auch eine Nachname haben also muss ich dann 3 Arrays haben ? -
Da ich keine Motivation habe, mit BASIC anzutun, hab ich dir das mal in Java runtergeschrieben. Aber Sprache hin oder her, die Grundidee bleibt dieselbe.
Zuerst habe ich dein XML ein bisschen umgebaut, z.B. das Hauptelement geschlossen (sonst ist es nicht valide) und etwas gekürzt. Es sieht jetzt so aus:
<?xml version="1.0" encoding="UTF-8"?> <dataroot xmlns:od="urn:schemas-microsoft-com:officedata" generated="2009-05-14T11:21:34"> <Boy> John </Boy> <Boy> James </Boy> <Boy> William </Boy> <Boy> Robert </Boy> <Boy> Joseph </Boy> <Boy> David </Boy> <Girl> Evelyn </Girl> <Girl> Susan </Girl> <Girl> Gina </Girl> <Girl> Caroline </Girl> <Girl> Claire </Girl> </dataroot>
Hier nun das Programm, das zufällig Männer- oder Frauennamen ausgibt. (Bei mir lag das XML auf E:\, ändere einfach den Pfad auf den Ort, wo es bei dir liegt):
package de.limacity.census.XML; import java.awt.*; import java.awt.event.*; import java.io.File; import java.util.Vector; import javax.swing.*; import javax.xml.*; import javax.xml.parsers.*; import org.w3c.dom.*; public class Main extends JFrame { private Vector <String> [] names; public static final int BOY = 0; public static final int GIRL = 1; public static void main (String [] args) throws Exception { new Main ().setVisible (true); } public Main () throws Exception { names = new Vector [2]; names [BOY] = new Vector <String> (); names [GIRL] = new Vector <String> (); File file = new File ("e:\\namen.xml"); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance (); DocumentBuilder db = dbf.newDocumentBuilder (); Document doc = db.parse (file); NodeList list = doc.getElementsByTagName ("Boy"); for (int i = 0; i < list.getLength (); i++) names [BOY].add (list.item (i).getFirstChild ().getNodeValue ().trim () ); list = doc.getElementsByTagName ("Girl"); for (int i = 0; i < list.getLength (); i++) names [GIRL].add (list.item (i).getFirstChild ().getNodeValue ().trim () ); setDefaultCloseOperation (EXIT_ON_CLOSE); getContentPane ().setLayout (new FlowLayout () ); JButton btn = new JButton ("Girl"); btn.addActionListener (new ActionListener () { public void actionPerformed (ActionEvent e) { showName (GIRL); } } ); getContentPane ().add (btn); btn = new JButton ("Boy"); btn.addActionListener (new ActionListener () { public void actionPerformed (ActionEvent e) { showName (BOY); } } ); getContentPane ().add (btn); pack (); } private void showName (int type) { JOptionPane.showMessageDialog (this, names [type].elementAt ( (int) (Math.random () * names [type].size () ) ) ); } }
-
Ich habe keine Ahnung von Java nicht mal welche Entwicklerumgbung ich brauche. Dann muss ich von vorne beginnen
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage