Die Lösung mit einem XML-Viewer

ebruss17

Bekanntes Mitglied
Hallo Community,

ich muss so einen XML-Viewer umsetzen. Habe eine JSP-Seite entwickelt, die eine Verbindung zur DB2-Datenbank aufbaut und die entsprechenden Spalten, die ich selektiere ausgibt. Innerhalb dieser Tabellen sind auch XML-Spalten mit dem Datentyp "XML" enthalten, in dessen XML-Strukturen hinterlegt sind. Die Tabellen werden auch auf der JSP-Seite ausgegeben. Jedoch werden die XML-Sachen nicht in der Struktur, sondern als Text ausgegeben. Wie könnte ich dieses Problem angehen? Ich könnte bei Bedarf auch den Programmcode dazu veröffentlichen...
 

ebruss17

Bekanntes Mitglied
Ich weiss leider nicht, wie ich den XML-Viewer auf meinen Code übertragen könnte. Hier mein Code:

Java:
<%@ page import="java.sql.*"%>
<%@ page import="java.lang.*"%>
<%@ page import=" javax.xml.parsers.DocumentBuilder"%>
<%@ page import=" javax.xml.parsers.DocumentBuilderFactory"%>
<%@ page import="org.xml.sax.InputSource"%>
<%@ page import="java.io.StringReader"%>
<%@ page import="org.w3c.dom.Document"%>
<%@ page import="org.xml.sax.SAXException"%>

<%
	Class.forName("com.ibm.db2.jcc.DB2Driver");
%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="Formatierung.css" type="text/css">
<title>Daten aus der Datenbank auslesen</title>
</head>
<body>
	<div id="head-container">
		<div id="header">
			<h1>Software-Testergebnisse</h1>
		</div>
	</div>
	<div id="navigation-container">
		<div id="navigation">
			<ul>
				<li><a href="#">Home</a></li>
			</ul>
		</div>
	</div>
	<%!public class Kunde {

		String url = "jdbc:db2://localhost:50000/mysample";
		String user = "db2admin";
		String password = "forever2007?";

		Connection connection = null;
		PreparedStatement selectKunden = null;
		ResultSet resultSet = null;

		public Kunde() {

			try {

				connection = DriverManager.getConnection(url, user, password);

				selectKunden = connection
						.prepareStatement("SELECT * FROM Lieferant");

			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		public ResultSet getKunden() {

			try {

				resultSet = selectKunden.executeQuery();

			} catch (SQLException e) {
				e.printStackTrace();
			}

			return resultSet;
		}

	}%>
	<%
		Kunde kunde = new Kunde();
		ResultSet kunden = kunde.getKunden();
	%>
	
	<div id="content-container">
		<div id="content-container2">
			<div id="content-container3">
				<div id="content">
					<h2>Ausgabe der Lieferantendatenbank</h2>
					<br>
					<table border="1">
						<tbody>
							<tr>
								<th>Lieferant_ID</th>
								<th>Firma</th>
								<th>Lieferantinformationen</th>
							</tr>
							<%
								while (kunden.next()) {
							%>
							<tr>
								<td><%=kunden.getInt("lf_ID")%></td>
								<td><%=kunden.getString("Firma")%></td>
								<td><a href="https://www.google.co.uk/"><%=kunden.getString("Lieferantinformationen")%>XML-Struktur</a><%=kunden.getString("Lieferantinformationen")%></td>
							</tr>
							<%
								}
							%>
						</tbody>
					</table>


				</div>
				<div id="aside">
					<h3>Weitere Informationen</h3>
					<p>Durch das Klicken auf den Hyperlink wird die XML-Struktur
						auf der nächsten Seite formatiert ausgegeben (XML Viewer)</p>
				</div>
			</div>
		</div>
		<div id="footer-container">
			<div id="footer">Copyright © Site name, 2014</div>
		</div>
	</div>

Die Tabelle "Lieferant" wird als HTML-Tabelle auf der Webseite ausgegeben, aber noch statisch, um diese dynamisch zu machen, müsste ich die HTML-<td>-Tags dynamisch erzeugen, sodass je nach Spaltenselektion wirklich nur die relevanten Spalten ausgegeben werden. Wie könnte ich das lösen? Mit einer for-Schleife? An welcher STelle müsste ich dann die for-Schleife hinzufügen und wie?
Ich habe eine Datenbank-Spalte "Lieferantinformationen", in der die XML-Strukturen hinterlegt sind. Die XML-Sachen werden aber als TExt und nicht als XML-Struktur in den jeweiligen Zeilen ausgegeben. Jetzt bräuchte ich so einen Hyperlink in jeder Zeile der Spalte "Lieferantinformationen", um darauf zu klicken auf einer anderen Seite dann mittels XML-Viewer die XML-Struktur mit deren Inhalt anzusehen. Wie könnte man das am einfachsten lösen? Nochmals vielen DAnk.
 

JavaMeister

Gesperrter Benutzer
Wie könnte man das am einfachsten lösen?

Prinzipiell ist das einfach, aber eben nicht so einfach, dass man das mit 0 Kentnissen einfach machen kann.

Hier sind offensichtlich mehrere Probleme:

1) Spalten dynamischen anzeigen

2) Eine XML in einer Tabelle anzeigen.

(Nebenbei gesagt scheint es mir ein Wunder, dass du es geschafft hast eine Bachelor Arbeit anzumelden)

====

Zu 1) Man muss ich überlegen, wie eine Tabelle in HTML aussschaut. Welche Teile erzeugen spalten? und welche erzeugen Zeilen?

Problem bei den Spalten ist, dass diese pro Zeile definiert werden. Du musst also wissen, welche Spalten du haben möchtest. Eine Datenstuktur haben, die alle Spalten (am besten via Name (e.g. HashMap)) vorhält. Die Spalten sind dann in einer Liste, die die Zeilen beinhalten.

List<Map<String, String>> (oder sowas ähnliches)

Dann kann man für jede Zeile eine Zeile machen und für jede Spalte eine Spalte. Denke das ist dann trivial.

Hinweis: EIn ResultSet hat bereits diese Eigenschaften.

Das sollte man am Ende des Studiums transferieren können.


Zu 2)

Siehe oben.

Wobei ich denke, dass das nicht die korrekte Lösung sein wird. Zumindest nicht nach meinen bisherigen Recherchen ;) - Aber da du über den gesamten Tag meine Bitte auf eine strukturierte Frage verweigerst, sehe ich auch nicht ein, hier ins Blaue zu raten ;)
 
Zuletzt bearbeitet:

ebruss17

Bekanntes Mitglied
Danke für die hilfreichen Informationen und Antworten. Das mit den dynamischen HTML-Tabellen ist schon gelöst. Aber XML-Viewer scheint noch nicht zu funktionieren. ;(
 
Zuletzt bearbeitet:

ebruss17

Bekanntes Mitglied
Es ist mir schon klar, dass ich es noch nicht implementiert habe. Wenn ich nicht weiss, wie man es implementieren kann, dann kann ich es auch nicht implementieren :D. Aus diesem Grund bin ich auch in diedem Forum angemeldet ;)
 

JavaMeister

Gesperrter Benutzer
Habe noch nie erlebt, dass die Registrierung in einem Forum ein solches Problem gelöst hat. Meist muss man das Problem verstehen, eine Lösung erarbeiten (hier helfen wir), und dann die Löung implementieren.

Aber wir stacken hier bei 1). Und ich glaube nicht, dass das transitiv ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Welche Zeichen sind erlaubt bei einem XML - Attributsnamen? XML & JSON 2
B Wie kann man das ecncoding in einem vorhandenen Document-Objekt ändern? XML & JSON 2
A Elemente aus mehreren XML-Dateien zu einem zusammenfügen XML & JSON 5
J Anzahl der Elemente in einem XML-Dokument auslesen XML & JSON 7
J wert IN einem tag einlesen/schreiben XML & JSON 4
I XSL-FO mehrere Reports in einem PDF XML & JSON 3
L Element manipulieren in einem DOMResult per XPath XML & JSON 10
B Problem beim löschen von ChildNodes aus einem XML-DOM XML & JSON 3
R JAXB: Aus einem Vector oder List XML Datei erstellen XML & JSON 1
C Mehrere Element_Nodes zusammenfassen zu einem Element XML & JSON 9
X Einzelne Tags rausnehmen aus einem großen XML-file XML & JSON 4
S leading whitespaces nach einem XMLOutputter XML & JSON 9
P Aus einem Node ein Document erstellen XML & JSON 2
A Internetinhalte auslesen und in einem XML-File speichern XML & JSON 4
P Knoten-Attribute einer xsd-Datei in einem JTree auslesen XML & JSON 18
D Text, String vor einem Root Element einfügen XML & JSON 2
A XML Dokument aus einem Schema ableiten/generieren? XML & JSON 6
H Nach einem Attribut suchen und dann löschen XML & JSON 3
E Was jemand was ein XML-Viewer ist und wie es verwendet wird? XML & JSON 1

Ähnliche Java Themen

Neue Themen


Oben