byte array in xslt umwandeln

Status
Nicht offen für weitere Antworten.

SpaceMan

Mitglied
Hallo zusammen,

ich habe ein "kleines" Problem. Sitze seit 2 Tagen dran und komm nicht weiter. Ich wär sehr dankbar, wenn jemand von euch mir Paar Tipps geben könnte.

Das Problem:
ein xslt-Dokument wird als byte[] an die Methode übergeben. Diese Methode soll dann die gespeicherten Attributen ausslesen und als liste zurückgeben.

Ich weiß nicht wie das mit dem Auslesen oder auch mit der umwandlung(byte[]-->xslt) funktionieren soll, weil ich nicht viel mit xml und xslt gearbeitet habe. Welchen Parser kann man benutzen?


Schöne Grüße,
Daniel
 
S

SlaterB

Gast
sind die Attribute im xslt drin oder in einer separaten xml-Datei?
wenn in xml, musst du dieses xml dann erst noch mit dem xslt transformieren oder kannst du auch direkt das xml durchsuchen?
Java and XSLT

ein byte[] könntest du in einer Datei zwischenspeichern,
oder per ByteArrayInputStream einen Stream draus machen, den andere Methoden benöigten oder für einen BufferedReader,
um daraus Text zu lesen,
generell wird man so eine Aufgabe ohne Java-Kenntnisse aber nicht lösen können,
wie kommt es denn, dass du sie hast?
 

SpaceMan

Mitglied
sind die Attribute im xslt drin oder in einer separaten xml-Datei?
wenn in xml, musst du dieses xml dann erst noch mit dem xslt transformieren oder kannst du auch direkt das xml durchsuchen?
Java and XSLT
Eingabe: typ: String, xslt: byte[]

Die xslt soll neben die Transformationsregeln auch eine Liste der Parameter/Attribute mit deren Typen enthalten. Also die Daten sollen aus xslt gewonnen werden und nicht aus der xml. Das verwirrt mich.

Ausgabe: Attributte vom Typ "schlagmichtot"

Aus einer xml kann man mit ner XPath anfrage die gewünschten Daten bekommen. Läuft es auch so ähnlich bei einer xslt? Wie? :)
Die xslt-Datei habe ich noch nicht geschrieben weil ich auf die xml-Datei warten muss. Das wird auch Lustig. :)

ein byte[] könntest du in einer Datei zwischenspeichern,
oder per ByteArrayInputStream einen Stream draus machen, den andere Methoden benöigten oder für einen BufferedReader,
um daraus Text zu lesen,
generell wird man so eine Aufgabe ohne Java-Kenntnisse aber nicht lösen können,
wie kommt es denn, dass du sie hast?


Ein Profi in Java bin ich nicht, aber ich geb mir Mühe. :)
Danke dir für dir Antwort.
 
S

SlaterB

Gast
XSLT ist im Grunde auch nur XML, ein Parser sollte damit was anfangen können,
notfalls als Text Zeile für Zeile einlesen und eben analysieren,

ausgeben und hier posten wäre der erste Schritt
 

SpaceMan

Mitglied
Java:
public GetAttributeListResponse getAttributeList(GetAttributeListRequest parameters)throws WsChangePatternServiceFault {
		GetAttributeListResponse response = null;

		String type = parameters.getAttributeType();

		byte[] pattern = parameters.getChangePattern();	

		String byteToString = new String(pattern);

		File file = new File (byteToString);

		ByteArrayOutputStream byteArrayOutputStream = new 
ByteArrayOutputStream();

	        FileInputStream fileInputStream=null;
			try {
				fileInputStream = new FileInputStream(file);		
			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	        byte[] buffer = new byte[16384];
	        
	        try {
				for (int len = fileInputStream.read(buffer); len > 0; len = fileInputStream.read(buffer)) {
					byteArrayOutputStream.write(buffer, 0, len);
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	 
	        try {
				fileInputStream.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	        try {
		  System.out.println
                      (newString(byteArrayOutputStream.toByteArray(),"UTF-8"));
			} catch (UnsupportedEncodingException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		return response;

	}


Also ich hab so ne methode geschrieben. Zur Zeit wird aber der Inhalt als System.out.println ausgegeben... Meinste ich bin auf den richtigen Weg? Muss jetzt nur noch herausfinden wie ich aus den Inhlat nur die Attribute rausholen kann. (println hab ich nur zum Testenreingepackt)
 
Zuletzt bearbeitet:

SpaceMan

Mitglied
Hello everybody,

Java:
public class FileAsByteArrayExample {
	public static void main(String[] args) throws Exception {
		File file = new File("C:/schedule.xsl");
		method0(file);
	}

	private static void method0(File file) throws Exception, IOException,UnsupportedEncodingException {
		FileInputStream fileInputStream = new FileInputStream(file);
		byte[] data = new byte[(int) file.length()];
		Document document = null;

		fileInputStream.read(data);
		fileInputStream.close();
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		factory.setNamespaceAware(true);
		ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(data);
		InputSource isource = new InputSource(byteArrayInputStream);

		DocumentBuilder builder = factory.newDocumentBuilder();
		document = builder.parse(isource);

		// instantiate an XPathFactory
		XPathFactory xpathFactory = XPathFactory.newInstance();

		// use the XPathFactory to crate a new XPath object
		XPath xpath = xpathFactory.newXPath();

		// expr = xpath.compile("//xsl:param");
		// expr1=xpath.compile("/xsl:parm/@name and /xsl:attribute[@name=\"userdefined\"]/../@name");
		// XPathExpression expr = xpath.compile("/xsl:parm/xsl:attribute[@name="userdefined"]/../@name");
		

		String path = "//*";
		
		NodeList nodes= (NodeList) xpath.evaluate(path, document, XPathConstants.NODESET);
		 for (int i = 0; i < nodes.getLength(); i++) {			 
			 System.out.println("Local name: "+nodes.item(i).getLocalName());
			 System.out.println("Node name: "+nodes.item(i).getNodeName());
			 System.out.println("Node type: "+nodes.item(i).getNodeType()+"\n");
		 }
	}
}

Ausschnitt aus der xsl-datei:
[XML]<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:eek:utput method="xml" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>


<xsl:param name="name" select="">
<xsl:attribute name="userdefined" />
</xsl:param>
<xsl:template match="/">
<xsl:param name="id" select="">
<xsl:attribute name="userdefined" />
</xsl:param>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Schedule</title>
</head>
<body>
<h2 align="center">
<xsl:value-of select="schedule/owner/name/first"/>
<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
<xsl:value-of select="schedule/owner/name/last"/>'s Schedule</h2>
<xsl:apply-templates select="schedule/appointment"/>
</body>
</html>
</xsl:template>......[/XML]


Also was ich brauche sind alle xsl:param mit xsl:attribute name="userdefined". Es klappt irg.wie nicht mit den xpath die ich eingegeben habe....

Ist es möglich die Infos rauszuhollen auch ohne der NodeList, also nur durch xpath-Anfrage?


Schöne Grüße,
Daniel
 
S

SlaterB

Gast
bringt denn die for-Schelfie schon Ergebnisse, alle Nodes?

> xpath.compile("/xsl:parm/xsl:attribute[@nam

ist parm statt param gewollt?
mit XPATH kenne ich mich aber nicht so aus,
dazu gibts doch sicher Tutorials, schön einfach mit TopLevel-Elementen anfangen, nach 2 Wochen langsam an Attribute heranwagen usw ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Y XML in ein Byte Array transformieren XML & JSON 8
R Handler-Wechsel, SAX Parser bricht nach 8192 Byte ab XML & JSON 5
Z json inkl. Array/Verschachtelung erstellen XML & JSON 2
J Object in JSON Datei einlesen und als neues Object erzeugen (in ein Object Array) XML & JSON 29
A Leeres Array beim Auslesen von XML-Datei XML & JSON 4
L Button-Array in XML XML & JSON 1
aze JaxB: Nullelemente in Array nicht anzeigen XML & JSON 3
L XML Daten auslesen und in Tabelle (Array) speichern XML & JSON 1
J XML-Datei ein Array einlesen XML & JSON 10
I Mit JDOM Daten aus XML in ein Array abfüllen XML & JSON 4
W xslt zum Rausfiltern von Feldern in XML wenn variable gleich false XML & JSON 7
W xslt zum Entfernen von unnoetigen Nullkommastellen bei double und float XML & JSON 26
K XML und XSL bzw XSLT XML & JSON 1
R String in XSLT teilen XML & JSON 3
R Script in XSLT einbinden XML & JSON 2
K aus 2XML mache 1XML mit XSLT XML & JSON 4
G xslt Attributwerte von bestimmten Elementen XML & JSON 2
S Xslt Problem XML & JSON 2
K docBook XSLT: HTML Code Snippet in Erzeugte HTML Dokument einfügen XML & JSON 9
T XML + XSLT to PDF mit FOP-Engine XML & JSON 14
E FOP - XSLT Transformierung mit Parametern XML & JSON 4
R '&' Zeichen im XSLT XML & JSON 4
B XSLT collections ? XML & JSON 2
Raidri JSP Parameter an XSLT übergeben XML & JSON 2
K XSLT Frage XML & JSON 4
S Guter XSLT - Transformator XML & JSON 2
slawaweis Problem mit XSLT (wahrscheinlich ein Bug in Java 6) XML & JSON 16
G XSLT-Stylesheet XML & JSON 2
N jdom - xslt-Verweis in .xml einfügen XML & JSON 3
B anzeigen des XML+ XSLT Ergebnisses XML & JSON 21
N XML zu XSLT XML & JSON 2
N XSLT Testmethoden XML & JSON 2
M Java und XSLT: Performanz-Problem XML & JSON 5
cybermat Ergebnis einer XSLT-Tansformation als Rückgabewert erhalten XML & JSON 4
A Wie hängen SAX/DOM mit XSLT zusammen? XML & JSON 3
Noar XSLT - Element-Wrapping XML & JSON 2
byte XSLT Transformation "ohne Server" XML & JSON 6
byte XSLT Editor ? XML & JSON 7
P XSLT in Java verwenden XML & JSON 7
A XSLT oder Java? / XML-Tools XML & JSON 2
T XSLT Parameter übergeben und Ergebnis empfangen XML & JSON 1

Ähnliche Java Themen

Neue Themen


Oben