# Die Lösung mit einem XML-Viewer



## ebruss17 (14. Nov 2014)

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...


----------



## JavaMeister (14. Nov 2014)

Mit der Beschreibung kann niemand was anfangen. Google mal nach " wie man fragen richtig stellt".


----------



## ebruss17 (14. Nov 2014)

Ich kann weitere Beschreibungen angeben, wenn ich weiss, was ich noch beschreiben sollte.


----------



## JavaMeister (14. Nov 2014)

https://www.phpbb.de/kb/programmierfragen


----------



## taro (14. Nov 2014)

how to display xml formatted jsp - Stack Overflow


----------



## ebruss17 (14. Nov 2014)

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


```
<%@ 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.


----------



## ebruss17 (14. Nov 2014)

kann mir denn niemand behilflich sein?


----------



## Joose (14. Nov 2014)

Du musst den Leuten schon Zeit geben sich mit dem Thema zu beschäftigen


----------



## JavaMeister (14. Nov 2014)

> 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


----------



## ebruss17 (14. Nov 2014)

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. ;(


----------



## JavaMeister (14. Nov 2014)

Wie sollte es auch? Vermutlich hast du es nicht implementiert?

Nochmal: https://www.phpbb.de/kb/programmierfragen

Durchlesen und handeln.


----------



## ebruss17 (14. Nov 2014)

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 . Aus diesem Grund bin ich auch in diedem Forum angemeldet


----------



## JavaMeister (14. Nov 2014)

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.


----------

