css-link(für java angepasst) in XML speichern und wieder auslesen

HTML:
<jsp:declaration>
String s = "<a href=\"http://www.webnobis.com\">ich</a>";
</jsp:declaration>
 
<%-- weiter unten: --%>
 
<ul>
<jsp:scriptlet>for (int i = 10; i > 0; i--) {</jsp:scriptlet>
<li><jsp:expression>s</jsp:expression></li>
<jsp:scriptlet>}</jsp:scriptlet>
</ul>

Hilft Dir das?
 
weniger.

Also, worum es mir geht:

ich habe eine JSP-Applikation (dass es JSP ist, hat eigentlich kaum was damit zu tun, es könnte auch ne Anwendung sein, die z.B. HTML Code generiert oder so). Diese Appl. soll aus einer XMLDatei, die hinterlegt ist, die Daten auslesen, die generiert werden sollen.
So auch den Befehl zum Einbinden einer css-Datei. Dieser soll komplett in dem XML Dokument hinterlegt werden.

also z.B. in dem Tag <csslink></csslink> soll

<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\"/>

hinterlegt werden. Da aber in diesem "String" selber Tags sind, beschwert sich XML. Also muss es anders gemacht werden. Versucht wurde bereits, die "<" mit &lt bzw. < usw. zu ersetzten, das gab dann keinen Fehler, jedoch wurde von java nicht alles angezeigt (nur "<" ).

So sollte das am Schluss aussehen. Was damit bezwegt werden soll, ist, dass man nicht für jede Änderung von Labels oder so alles neu compilieren muß.

Hallo!

Wie wär's denn wenn du diese Link-Elemente innerhalb eines CDATA Blocks in deinem XML Dokument aufnehmen würdest, dann hättest du kein Problem mehr mit den Zeichen.

Gruß Tom

Ich weiß jetzt was du meinst. Das is aber nur ne Notlösung, geiler wäre schon der gesamte Link.
 
Zuletzt bearbeitet:
Hallo!

Code:
/*
 * Created on 25.01.2005@09:53:29
 *
 * TODO Licence info
 */
package de.tutorials;

import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.CDATASection;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

/**
 * @author Darimont
 * 
 * TODO Explain me
 */
public class CDataTest {

	public static void main(String[] args) {
		try {
			DocumentBuilder builder = DocumentBuilderFactory.newInstance()
					.newDocumentBuilder();

			Document doc = builder.newDocument();
			Element root = doc.createElement("root");

			Element cssLink = doc.createElement("csslink");

			CDATASection cdata = doc
					.createCDATASection("<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\"/>");

			cssLink.appendChild(cdata);

			root.appendChild(cssLink);

			doc.appendChild(root);

			Transformer trans = TransformerFactory.newInstance()
					.newTransformer();

			trans.transform(new DOMSource(doc), new StreamResult(new File(
					"c:/csslinkbase.xml")));

		} catch (ParserConfigurationException e) {
			e.printStackTrace();
		} catch (TransformerConfigurationException e) {
			e.printStackTrace();
		} catch (TransformerFactoryConfigurationError e) {
			e.printStackTrace();
		} catch (TransformerException e) {
			e.printStackTrace();
		}
	}
}

Gruß Tom
 
Deine Datei geht nich : :(

Code:
javax.xml.transform.TransformerException: java.io.FileNotFoundException: c:\csslinkbase.xml (Access is denied)
 	at org.apache.xalan.transformer.TransformerIdentityImpl.createResultContentHandler(TransformerIdentityImpl.java:263)
  	at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:296)
  	at javaapplication2.Main.main(Main.java:54)
  Caused by: java.io.FileNotFoundException: c:\csslinkbase.xml (Access is denied)
  	at java.io.FileOutputStream.open(Native Method)
  	at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
  	at java.io.FileOutputStream.<init>(FileOutputStream.java:70)
 	at org.apache.xalan.transformer.TransformerIdentityImpl.createResultContentHandler(TransformerIdentityImpl.java:253)
  	... 2 more
  ---------
  java.io.FileNotFoundException: c:\csslinkbase.xml (Access is denied)
  	at java.io.FileOutputStream.open(Native Method)
  	at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
  	at java.io.FileOutputStream.<init>(FileOutputStream.java:70)
 	at org.apache.xalan.transformer.TransformerIdentityImpl.createResultContentHandler(TransformerIdentityImpl.java:253)
  	at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:296)
  	at javaapplication2.Main.main(Main.java:54)


habe aber bei meiner Variante mitbekommen, dass alle Werte eines Tags eingelesen werden... bis ein &-Zeichen kommt.
 
Zuletzt bearbeitet:
Daaanke, jetzt es. Das Programm war schon fast zuviel, aber die Ausgabe genau das richtige.
Code:
<![CDATA[<link rel="stylesheet" type="text/css" href="style.css"/>]]>

muss in die Tags rein, denn geht's auch.

Ich bedanke mich.
 
Zurück