HTML/XML auswerten und in etwas anderes umwandeln?

7 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Bei hierachisch strukturierten Daten wirst Du immer dazu übergehen einen Baum für die Daten aufzubauen.

Ein Descend-Parser bekommt einfach die Grammatik, und schaut nun ob der Text zur Grammatik passt während er zeitgleich den Syntax-Tree aufbaut. Unter anderem wirst Du in Deinem Parser auch eien Form von steuerbarem Tokenizer verwenden.

Am Ende des Prozesses erhälst Du entweder Fehler beim Parsen, oder eben den vollständigen Syntaxtree. Bereinigst Du den Syntaxtree um jene Teile, die nicht für die eigentliche Struktur nötig sind, erhälst Du eben den finalen Datenbaum.

---

Eigentlich solltest Du jetzt genug Schlüsselwörter haben, um gezielt nach Artikeln udn Beispielen zu suchen.

https://glade.gnome.org/

Glade macht so etwas für GUIs, weil Du bei einer anderen Antwort explizit nach GUIs fragst.

Das kannst du theoretisch in jeder Sprache umsetzen. Sogar (mehr oder weniger) in der Konsole.

Angenommen du hast eine Forms-Anwendung, dann kannst du dir durchaus Klassen schreiben, die die Forms aus XML Dateien (oder ähnlichem) aufbauen indem sie einfach die TextBox Instanzen etc erzeugen. Ist kein Hexenwerk..

Der Parser interpretiert dir nur das XML bzw HTML Dokument. Am besten geht das über sogenannte DOM Objekte oder je nach Programmiersprache gibts dann auch Parser welche noch mehr unterstützen.

Das was du machen willst klingt für mich eher nach XAML von Microsoft. Die WPF GUIs werden da über eine Erweiterung von XML erstellt.

Um also das zu realsieren musst du:

  1. Das XML/HTML parsen
  2. Die Objekte welche dein XML beschreibt erzeugen
  3. Die Objekte in der GUI zeichne
  4. Die GUI mit den Objekten verbinden um hier zB einen Button einen Callback zu gegen wenn dieser gedrückt wurde.

C# Xml-Datei in Programm einlesen und Änderungen speichern?

Hallo, ich programmiere derzeit ein Programm, welches Xml-Dateien einliest. Nun möchte ich aber, das wenn ich im datagridview Text aus der Xml-Datei ändere und auf den Button speichern klicke, die Änderungen dann im Xml-Dokument zu sehen sind z.B. in der Spalte Name Mayer steht, ich ihn auf Huber ändere und wenn ich dann auf speichern klicke der Name auch im Xml-Dokument geändert ist. VIelen Dank für eure Hilfe. :)

Code:

namespace MehrerePersonen
{
    public partial class Form1 : Form
    {
        private OpenFileDialog openfiledialog;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
        }

        private void buttonPfad_Click(object sender, EventArgs e)
        {
            OpenFileDialog openfiledialog = new OpenFileDialog();
            if (openfiledialog.ShowDialog() == DialogResult.OK)
            {
                textBoxPfad.Text = (openfiledialog.FileName);
            }
        }

        public void buttonErstellen_Click(object sender, EventArgs e)
        {
            XmlDocument xml = new XmlDocument();
            XmlReader xmlFile;
            xmlFile = XmlReader.Create("MehrerePersonen.xml", new XmlReaderSettings());
            DataSet ds = new DataSet();
            ds.ReadXml(xmlFile);
            dataGridView.DataSource = ds.Tables[0];

            xml.Load(textBoxPfad.Text);
                foreach (XmlNode node in xml.ChildNodes)
                {
                    if (node.Name == "Personen")
                    {
                        foreach (XmlNode node_of_node in node.ChildNodes)
                        {
                            if (node_of_node.Name == "Person")
                            {
                                string name = node_of_node["Name"].InnerText;
                                string vorname = node_of_node["Vorname"].InnerText;
                                string wohnort = node_of_node["Wohnort"].InnerText;
                                dataGridView.Text = name;
                                dataGridView.Text = vorname;
                                dataGridView.Text = wohnort;
                            }
                        }
                    }
                }
        }

        public void buttonSpeichern_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();
            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                                     //Was muzss hier in den buttonSpeichern
            }
        }
    }
}
...zur Frage

php radio button div ein und ausblenden?

Hallo,

ich möchte anhand von Radio-Buttons weitere Formularfelder (in einem DIV) ein und ausblenden. Damit diese eingeblendet werden habe ich bereits. Sobald ich aber auf einen anderen Radio Button klicke bleibt die erste auswahl bestehen und verschwindet nicht mehr.

Desweiteren, wie mache ich es, damit bei auswahl des Radio Buttons die dann aufblendenen Felder Pflichtfelder werden?

Hier mein Script was das einblenden ausgibt, aber nicht das ausblenden:

<script type="text/javascript" language="javascript">

   function showFormSendWahl(ID, getShow){

       if(getShow == true){

           document.getElementById(ID).style.display = "inline";

       } else {

            document.getElementById(ID).style.display = "none";

       }

   }   

</script>

</head>

--------------------------------------------------------------- (ausschnitt aus dem html teil) ->

<label><b>Bezahlung:</b></label><br>

<input type="radio" name="wahl" value="1" onclick="showFormSendWahl('show', this.checked)" /> Lastschrift<br />

   <input type="radio" name="wahl" value="1" onclick="showFormSendWahl('show1', this.checked)" /> Kreditkarte<br />

   <input type="radio" name="wahl" value="2" /> Nachname (zzgl. 4,28€)

   <br><br>

   <div id="show" style="display: none;">

   <label for="ktoinh"><b>Kontoinhaber:</b></label><br />

<input type="text" id="Kontoinhaber" name="Kontoinhaber" required placeholder="Kontoinhaber">

<label for="iban"><b>IBAN:</b></label><br />

<input type="text" id="IBAN" name="IBAN" required placeholder="IBAN"><br>

   </div>

 <div id="show1" style="display: none;">

   <label for="kkk-art"><b>Kreditkarte:</b></label><br />

   <select id="KK-Art" name="KK-Art">

                              <option value="VISA-Card" selected="selected">Visacard</option>

                              <option value="Mastercard">Mastercard</option>

                              </select><br>

<input type="text" id="Karteninhaber" name="Karteninhaber" required placeholder="Karteninhaber">

<label for="KK-Nr"><b>Kartennr.:</b></label><br />

<input type="text" id="KK-NR" name="KKNR" required placeholder="Kartennummer"><br>

<label for="gültig"><b>Gültig bis:</b></label><br />

<input type="text" id="gültig" name="gültig" required placeholder="Gültig bis"><br>

<label for="SS-NR"><b>Sicherheitsnr.:</b></label><br />

<input type="text" id="SS-NR" name="SSNR" required placeholder="Sicherheitsnummer"><br>

   </div>   

...zur Frage

Was möchtest Du wissen?