nur bestimmte daten herausfiltern und anzeigen

Eine Xpathlösung als Javascript. XSLT habe ich jetzt gerade keine Lust, kommt aber vielleicht noch ;-)

XML:
<!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=ISO-8859-1">
<title>Insert title here</title>
<script language="JavaScript1.2">
	
	function doTest(filename) {
		
		var treffer = getXPathResult(getDocument(), "//archiv[Item='" + filename + "']");
		var divTag = document.getElementById("myTable");
		
		var tableTag = document.createElement("table");
		tableTag.setAttribute("border","1");
		divTag.appendChild(tableTag);
		
		var tbodyTag = document.createElement("tbody");
		tableTag.appendChild(tbodyTag);
		
		for (var i = 0; i < treffer.length; i++) {
			var trTag = document.createElement("tr");
			tbodyTag.appendChild(trTag);
			
			var tdTag = document.createElement("td");
			trTag.appendChild(tdTag);
			
			var textNode = document.createTextNode(treffer[i].getAttribute("name"));
			tdTag.appendChild(textNode);
				
			var tdTag = document.createElement("td");
			trTag.appendChild(tdTag);
			
			var textNode = document.createTextNode(filename);
			tdTag.appendChild(textNode);
			
		}
	}
	
	function getXPathResult(xmlKnoten, xPathAusdruck) {
	
		// Menge aller gefundenen Konten
	  	var ergebnisse = [];
		// Mit IE ermitteln
	  	if (window.ActiveXObject) {
	     	ergebnisse = xmlKnoten.documentElement.selectNodes(xPathAusdruck);
			
		// Mit Mozilla ermitteln	
	  	} else if (window.XPathEvaluator) {
	    	var ev = new XPathEvaluator();
	     	var iterator = ev.evaluate( xPathAusdruck, xmlKnoten.documentElement, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);
	     	var knoten;
	     	while (knoten = iterator.iterateNext()) {
	        	ergebnisse[ergebnisse.length] = knoten;
	     	}
	  	}
		
		return ergebnisse;
	}
	
	function getDocument() {
		
		// Besser mit Ajax laden, dies ist nur eine simple Lösung
		var xmlString = '<?xml version="1.0" encoding="UTF-8"?><root><Datei><archiv name="b_20080704102628_backup"><Item>Text1 (1).bak</Item><Item>Text1 (10).txt</Item><Item>Text1 (11).txt</Item><Item>Text1 (12).alf</Item><Item>Text1 (3).dmp</Item><Item>Text1 (4).sav</Item><Item>Text1 (5).txt</Item><Item>Text1 (6).txt</Item><Item>Text1 (7).txt</Item><Item>Text1 (8).txt</Item><Item>Text1 (9).txt</Item><Item>text2.cdc</Item></archiv></Datei><Datei><archiv name="b_20080704102704_backup"><Item>Text1 (1).bak</Item><Item>Text1 (10).txt</Item><Item>Text1 (11).txt</Item><Item>Text1 (12).alf</Item><Item>Text1 (3).dmp</Item><Item>Text1 (4).sav</Item><Item>Text1 (5).txt</Item><Item>Text1 (6).txt</Item><Item>Text1 (7).txt</Item><Item>Text1 (8).txt</Item><Item>Text1 (9).txt</Item></archiv></Datei><Datei><archiv name="b_20080704105146_backup"><Item>Text1 (1).bak</Item><Item>Text1 (10).txt</Item><Item>Text1 (11).txt</Item><Item>Text1 (12).alf</Item><Item>Text1 (3).dmp</Item><Item>Text1 (4).sav</Item><Item>Text1 (5).txt</Item><Item>Text1 (6).txt</Item><Item>Text1 (7).txt</Item><Item>Text1 (8).txt</Item><Item>Text1 (9).txt</Item><Item>text2.cdc</Item></archiv></Datei></root>';
		var xmlDocument;
		
		// Browserabhängigen Domparser wählen
		// IE
		if (window.ActiveXObject) {
         	xmlDocument = new ActiveXObject("MSXML2.DomDocument.6.0");
         	xmlDocument.loadXML(xmlString);
		// Mozilla
      	} else if (document.implementation) {
        	 xmlDocument = (new DOMParser()).parseFromString(xmlString, "text/xml");
      	}
		// gefüllten XMLBaum zurückgeben
		return xmlDocument;

	}
	
</script>
</head>
<body onload="doTest('text2.cdc');">
	<div id="myTable"></div>
</body>
</html>
 
Zuletzt bearbeitet von einem Moderator:
Hier ist doch noch eine XSLT-Lösung, nicht schön ist aber auch schon spät...:

XML:
!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=ISO-8859-1">
<title>Insert title here</title>
<script language="JavaScript1.2">
	
	function doTest(filename) {
		
		var divTag = document.getElementById("myTable");
		transform(getDocument(), filename, "NewFile.xsl", divTag);
		
	}
	
	function transform(xmlKnoten, parameter, xslfilename, divTag) {
		 if (window.ActiveXObject) {
  	       	var xsl = new ActiveXObject("MSXML2.FreeThreadedDOMDocument.6.0");
  	       	xsl.async = false;
 	       	xsl.load(xslfilename);
         	var template = new ActiveXObject("MSXML2.XSLTemplate.6.0");
         	template.stylesheet = xsl;
			
         	var process = template.createProcessor();
         	process.input = xmlKnoten;
			process.addParameter("filename", parameter);

         	process.transform();
	divTag.innerHTML = process.output;
			
         	
      } else if (window.XSLTProcessor) {
	         var xsl = document.implementation.createDocument("", "", null);
	         xsl.async = false;
	         xsl.load(xslfilename);
	         var process = new XSLTProcessor();
			 process.setParameter(null, "filename", parameter);
	         process.importStylesheet(xsl);
	         divTag.appendChild( process.transformToFragment( xmlKnoten, document));
	         
	      }

		
	}
	
	function getDocument() {
		
		// Besser mit Ajax laden, dies ist nur eine simple Lösung
		var xmlString = '<?xml version="1.0" encoding="UTF-8"?><root><Datei><archiv name="b_20080704102628_backup"><Item>Text1 (1).bak</Item><Item>Text1 (10).txt</Item><Item>Text1 (11).txt</Item><Item>Text1 (12).alf</Item><Item>Text1 (3).dmp</Item><Item>Text1 (4).sav</Item><Item>Text1 (5).txt</Item><Item>Text1 (6).txt</Item><Item>Text1 (7).txt</Item><Item>Text1 (8).txt</Item><Item>Text1 (9).txt</Item><Item>text2.cdc</Item></archiv></Datei><Datei><archiv name="b_20080704102704_backup"><Item>Text1 (1).bak</Item><Item>Text1 (10).txt</Item><Item>Text1 (11).txt</Item><Item>Text1 (12).alf</Item><Item>Text1 (3).dmp</Item><Item>Text1 (4).sav</Item><Item>Text1 (5).txt</Item><Item>Text1 (6).txt</Item><Item>Text1 (7).txt</Item><Item>Text1 (8).txt</Item><Item>Text1 (9).txt</Item></archiv></Datei><Datei><archiv name="b_20080704105146_backup"><Item>Text1 (1).bak</Item><Item>Text1 (10).txt</Item><Item>Text1 (11).txt</Item><Item>Text1 (12).alf</Item><Item>Text1 (3).dmp</Item><Item>Text1 (4).sav</Item><Item>Text1 (5).txt</Item><Item>Text1 (6).txt</Item><Item>Text1 (7).txt</Item><Item>Text1 (8).txt</Item><Item>Text1 (9).txt</Item><Item>text2.cdc</Item></archiv></Datei></root>';
		var xmlDocument;
		
		// Browserabhängigen Domparser wählen
		// IE
		if (window.ActiveXObject) {
         	xmlDocument = new ActiveXObject("MSXML2.DomDocument.6.0");
         	xmlDocument.loadXML(xmlString);
		// Mozilla
      	} else if (document.implementation) {
        	 xmlDocument = (new DOMParser()).parseFromString(xmlString, "text/xml");
      	}
		// gefüllten XMLBaum zurückgeben
		return xmlDocument;

	}
	
</script>
</head>
<body onload="doTest('text2.cdc');">
	<div id="myTable"></div>
</body>
</html>

Hier das angepasste XSLTFile:

XML:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >

	<xsl:output method="html" />
	
	<xsl:param name="filename" select="''" />
	
	
	<!-- Einsprungpunkt der Verarbeitung  -->
	<xsl:template match="/">
		<table border="1">
			<xsl:apply-templates select="//archiv[Item=$filename]"/>
		</table>
	</xsl:template>
	
	<xsl:template match="archiv">
		<tr>
		 <td><xsl:value-of select="@name" /></td>
		 <td><xsl:value-of select="$filename" /></td>
		</tr>
	</xsl:template>

	
</xsl:stylesheet>

Ich habe die neuesten ActiveX-Komponenten verwendet. Die kleineren Versionsnummer habe ich nicht getestet. Kann sein, dass Du noch ein paar if's einbauen musst.

Die Lösung mit dem XSLT gefällt mir besser, da Du weniger Aufwand hast, wenn die Strukur sich ändert.

Grüße
 
Zuletzt bearbeitet von einem Moderator:
grüße

danke für deine mühe aber irgentwie t das nicht!

ich habe die xml-datei per ajax geholt (kommt auch an!) aber irgendwie bringt er mir als ergebniss nur einen Punkt!

Ich hatte mir da was anderes überlegt und hoffe du kennst dich da vielleicht auch so super aus:

//per ajax habe ich mir das gesamte xml-document geholt
Code:
var xmlDoc	= request.responseXML;

					var tbl=document.getElementById('ArchivTabelle');

					while(tbl.rows.length>1) {
					  
					    tbl.deleteRow(1);
					  }	

					
					
					var ergebnisse = xmlDoc.getElementsByTagName("datei");
					

		
					for (i=0; i< ergebnisse.length; i++) { 

						
						
						var x = document.getElementById('ArchivTabelle').insertRow(i+1);
						var cellarchiv	=x.insertCell(0);
						var cellname	=x.insertCell(1);
						
						cellarchiv.innerHTML = xmlDoc.getElementsByTagName('archiv')[i].childNodes.nodeName;
cellname.innerHTML = xmlDoc.getElementsByTagName('item')[i].firstChild.nodeValue;
					
					}

bis jetzt ist die ausgabe in eine Tabelle:
Code:
Archivname                                  Dateiname
undefined --> 1. archiv                   Text1 (1).bak --> 1. archiv 1.datei
undefined --> 2. archiv                   Text1 (10).txt --> 1. archiv 2.datei
undefined --> 3. archiv	                  Text1 (11).txt --> 1. archiv 3.datei

Wie du siehst arbeitet er die for-schleife falsch ab (besser gesagt ich habe da definitiv einen fehler) Ich weis auch das ich noch ne for-schleife brauch aber ich habe da das problem wie ich sie schachteln soll!

weist du da was?
 
Warum willst Du denn jetzt so eine komplizierte unflexible Lösung bauen, wenn Du schon eine fast lauffähige saubere Lösung hast?

Was ist denn das Problem bei meiner Lösung? Mit welchen Browser in welcher Umgebung hast Du es denn getestet? Hast Du es mal debuggt um das Problem zu finden? Gib doch nicht so schnell auf!

Bei mit lief es sowohl unter IE als auch Mozilla problemlos.

Es wäre sicher hilfreich mal Deinen Code zu posten, wenn auch nur auszugsweise.

Grüße
 
servus

also wenn ich dein script copiere und teste bringt er mir sofort einen fehler:
Parse error: syntax error, unexpected T_STRING in C:\xampp\htdocs\neutest\test.php on line 48 (da wo der xml string ist)


ok ich habe den fehler gefunden: es lag an mir habe die xsl-file falsch benannt ^^

ich schicke dir mal mein script was ich angefangen hatte:
Code:
<html>
<head>
<title>Welcome</title>
<script type="text/javascript" src="js/ajax.pack.js"></script>
<script type="text/javascript" src="js/jQuery/jquery.js"></script>
<script type="text/javascript" src="js/jQuery/Tablesorter/tablesorter.js"></script> 
<script type="text/javascript">
	function search() {

		// Request erzeugen
		if (window.XMLHttpRequest) {
		
			request = new XMLHttpRequest(); // Mozilla, Safari, Opera
		} else if (window.ActiveXObject) {
			try {
				request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
			} catch (e) {
				try {
					request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
				} catch (e) {}
			}
		}

		// überprüfen, ob Request erzeugt wurde
		if (!request) {
			alert("Kann keine XMLHTTP-Instanz erzeugen");
			return false;
		} else {
			var url = "index.php/welcome/suche";	//welcome ist die seite und details die function auf der seite 
			// Request öffnen
			request.open('post', url, true);
			// Requestheader senden
			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			// Request senden
			request.send('methode=get&Id=');
			// Request auswerten
			request.onreadystatechange = interpretRequest;
		}
	}

	// Request auswerten
	function interpretRequest() {

		switch (request.readyState) {
			// wenn der readyState 4 und der request.status 200 ist, dann ist alles korrekt gelaufen
			case 4:
				if (request.status != 200) {
					alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
				} else {
					// Antwort des Servers -> als XML-Dokument
var xmlDoc = request.responseXML;

var tbl=document.getElementById('ArchivTabelle');

while(tbl.rows.length>1) {

tbl.deleteRow(1);
}



var ergebnisse = xmlDoc.getElementsByTagName("datei");



for (i=0; i< ergebnisse.length; i++) {



var x = document.getElementById('ArchivTabelle').insertRow(i+1);
var cellarchiv =x.insertCell(0);
var cellname =x.insertCell(1);

cellarchiv.innerHTML = xmlDoc.getElementsByTagName('archiv')[i].childNodes.nodeName;
cellname.innerHTML = xmlDoc.getElementsByTagName('item')[i].firstChild.nodeValue;


					}
				}
				break;
			default:
				break;
		}
	}
</script>
<link rel="stylesheet" media="screen,projection" type="text/css" href="jQuery/Tablesorter/blue/style.css"/>
<link rel="stylesheet" href="css/haupt.css" type="text/css" media="screen" />
<link type="image/x-icon" href="./res/favicon.ico" rel="shortcut icon"/>
<link href="./res/favicon.ico" rel="bookmark"/>			
<style media="screen,projection" type="text/css">
	@import url(./css/main.css);
	@import url(./css/nav_horz.css);
</style>
</head>
	<div class="Terminal"><h3>Backup-Suche</h3>
		<hr width="97%"></hr>
		<div>
			<input type='text' name='auswahl' size='20'>
			<input type='submit' name='senden' onclick='search()'>
		</div>
		<hr width="97%"></hr>	
			<table width="100%" name="ArchivTabelle" id="ArchivTabelle" >		
				<thead>
					<tr>
						<th width="45%" align="left">Archiv Name</th>
						<th width="40%" align="left">Datei Name</th>
					</tr>
				</thead>
				<tbody>
				</tbody>
			</table>
	</div>
</body>
</html>

und meine datei auf die ich mit ajax zugreife:

welcome.php
<?php


class Welcome extends Controller {

	function Welcome(){
	
		parent::Controller();	
	}
	
	function index(){
		$this->load->view('welcome_message');
	}
	
	
	function suche() {
		$arr = file("c:/test.txt");
		$closetag ="";
		$xmlstr ="";
		$prefix ="b_";
		$head = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\r\n";
		$open ="<root>\r\n";
		$close ="</root>\r\n";

		foreach($arr as $key=>$value) {
		  $value=trim($value);
		  if(substr($value,-7)=='_backup'){
		    $xmlstr.=$closetag."<archiv name=\"$prefix$value\">\r\n";
		    $closetag="</archiv>\r\n";
		  }else{
		    $key="item";
		    $xmlstr.="  <$key>".$value."</$key>\r\n";
		    }
		}
		
		$data = $head.$open.$xmlstr.$closetag.$close;
	header("Content-Type: text/xml;");
	echo $data;
	}

	
}

?>

ich arbeite mit codigniter!

wenn man natürlich in der welcome php das script so umschreiben kann das man dort die auswahl trifft wäre der rest ja einfach!

Diese art hatte ich genommen damit ich ein eingabefeld habe und jedesmal wenn ich auf weiter gedückt habe wurde die tabelle resetet und eine neue erstellt!

Compane
 
Zuletzt bearbeitet:
Hi,

bin gerade etwas im Stress und konnte Deinem Post leider nicht entnehmen, ob jetzt alles funktioniert, oder ob es noch irgendwo hakt.

Wenn es noch Probleme gibt, formuliere doch bitte konktete Fragen, sonst muß ich mich durch den Code wühlen.

Grüße
 
Servus nochmal gibt es eine möglichkeit bei deinen script das die vorherige tabelle die erstellt wurde einfach gelöscht wird?

derzeit wird die tabelle einfach immer wieder unten-heran-gefügt.

meine erweiterung zu deinen script:

<html>
<head>
<title>Welcome</title>
<script type="text/javascript" src="js/ajax.pack.js"></script>
<script type="text/javascript" src="js/jQuery/jquery.js"></script>
<script type="text/javascript" src="js/jQuery/Tablesorter/tablesorter.js"></script>
<script type="text/javascript">
function doTest() {

var filename = document.getElementById("auswahl").value;

var divTag = document.getElementById("myTable");
transform(getDocument(), filename, "NewFile.xsl", divTag);
}
function transform(xmlKnoten, parameter, xslfilename, divTag) {
if (window.ActiveXObject) {
var xsl = new ActiveXObject("MSXML2.FreeThreadedDOMDocument.6.0");
xsl.async = false;
xsl.load(xslfilename);
var template = new ActiveXObject("MSXML2.XSLTemplate.6.0");
template.stylesheet = xsl;
var process = template.createProcessor();
process.input = xmlKnoten;
process.addParameter("filename", parameter);
process.transform();
divTag.innerHTML = process.output;
} else if (window.XSLTProcessor) {
var xsl = document.implementation.createDocument("", "", null);
xsl.async = false;
xsl.load(xslfilename);
var process = new XSLTProcessor();
process.setParameter(null, "filename", parameter);
process.importStylesheet(xsl);
divTag.appendChild( process.transformToFragment( xmlKnoten, document));
}
}
function getDocument() {
// Besser mit Ajax laden, dies ist nur eine simple Lösung
var xmlString = '<root><Datei><archiv name="b_20080704102628_backup"><Item>Text1 (1).bak</Item><Item>Text1 (10).txt</Item><Item>Text1 (11).txt</Item><Item>Text1 (12).alf</Item><Item>Text1 (3).dmp</Item><Item>Text1 (4).sav</Item><Item>Text1 (5).txt</Item><Item>Text1 (6).txt</Item><Item>Text1 (7).txt</Item><Item>Text1 (8).txt</Item><Item>Text1 (9).txt</Item><Item>text2.cdc</Item></archiv></Datei><Datei><archiv name="b_20080704102704_backup"><Item>Text1 (1).bak</Item><Item>Text1 (10).txt</Item><Item>Text1 (11).txt</Item><Item>Text1 (12).alf</Item><Item>Text1 (3).dmp</Item><Item>Text1 (4).sav</Item><Item>Text1 (5).txt</Item><Item>Text1 (6).txt</Item><Item>Text1 (7).txt</Item><Item>Text1 (8).txt</Item><Item>Text1 (9).txt</Item></archiv></Datei><Datei><archiv name="b_20080704105146_backup"><Item>Text1 (1).bak</Item><Item>Text1 (10).txt</Item><Item>Text1 (11).txt</Item><Item>Text1 (12).alf</Item><Item>Text1 (3).dmp</Item><Item>Text1 (4).sav</Item><Item>Text1 (5).txt</Item><Item>Text1 (6).txt</Item><Item>Text1 (7).txt</Item><Item>Text1 (8).txt</Item><Item>Text1 (9).txt</Item><Item>text2.cdc</Item></archiv></Datei></root>';
var xmlDocument;
// Browserabhängigen Domparser wählen
// IE
if (window.ActiveXObject) {
xmlDocument = new ActiveXObject("MSXML2.DomDocument.6.0");
xmlDocument.loadXML(xmlString);
// Mozilla
} else if (document.implementation) {
xmlDocument = (new DOMParser()).parseFromString(xmlString, "text/xml");
}
// gefüllten XMLBaum zurückgeben
return xmlDocument;


}
</script>
<link rel="stylesheet" media="screen,projection" type="text/css" href="jQuery/Tablesorter/blue/style.css"/>
<link rel="stylesheet" href="css/haupt.css" type="text/css" media="screen" />
<link type="image/x-icon" href="./res/favicon.ico" rel="shortcut icon"/>
<link href="./res/favicon.ico" rel="bookmark"/>
<style media="screen,projection" type="text/css">
@import url(./css/main.css);
@import url(./css/nav_horz.css);
</style>
</head>
<body>
<div class="Terminal"><h3>Backup-Suche</h3>
<hr width="97%"></hr>
<div>
<input type="text" id="auswahl" name="auswahl" size="20">
<input type="submit" name="senden" onclick="doTest();">
</div>
<hr width="97%"></hr>
</div>
<div id="myTable"></div>
</body>
</html>

Danke
 
So gehts mit Eingabefeld...

XML:
<!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=ISO-8859-1">
<title>Insert title here</title>
<script language="JavaScript1.2">
	
	function doTest() {
		
		
		var divTag = document.getElementById("myTable");
		var filename = document.getElementById("filename").value;
		divTag.innerHTML = "";
		transform(getDocument(), filename, "NewFile.xsl", divTag);
		
	}
	
	function transform(xmlKnoten, parameter, xslfilename, divTag) {
		 if (window.ActiveXObject) {
  	       	var xsl = new ActiveXObject("MSXML2.FreeThreadedDOMDocument.6.0");
  	       	xsl.async = false;
 	       	xsl.load(xslfilename);
         	var template = new ActiveXObject("MSXML2.XSLTemplate.6.0");
         	template.stylesheet = xsl;
			
         	var process = template.createProcessor();
         	process.input = xmlKnoten;
			process.addParameter("filename", parameter);

         	process.transform();
			
         	divTag.innerHTML = process.output;
			
         	
      } else if (window.XSLTProcessor) {
	         var xsl = document.implementation.createDocument("", "", null);
	         xsl.async = false;
	         xsl.load(xslfilename);
	         var process = new XSLTProcessor();
			 process.setParameter(null, "filename", parameter);
	         process.importStylesheet(xsl);
	         divTag.appendChild( process.transformToFragment( xmlKnoten, document));
	         
	      }

		
	}
	
	function getDocument() {
		
		// Besser mit Ajax laden, dies ist nur eine simple Lösung
		var xmlString = '<?xml version="1.0" encoding="UTF-8"?><root><Datei><archiv name="b_20080704102628_backup"><Item>Text1 (1).bak</Item><Item>Text1 (10).txt</Item><Item>Text1 (11).txt</Item><Item>Text1 (12).alf</Item><Item>Text1 (3).dmp</Item><Item>Text1 (4).sav</Item><Item>Text1 (5).txt</Item><Item>Text1 (6).txt</Item><Item>Text1 (7).txt</Item><Item>Text1 (8).txt</Item><Item>Text1 (9).txt</Item><Item>text2.cdc</Item></archiv></Datei><Datei><archiv name="b_20080704102704_backup"><Item>Text1 (1).bak</Item><Item>Text1 (10).txt</Item><Item>Text1 (11).txt</Item><Item>Text1 (12).alf</Item><Item>Text1 (3).dmp</Item><Item>Text1 (4).sav</Item><Item>Text1 (5).txt</Item><Item>Text1 (6).txt</Item><Item>Text1 (7).txt</Item><Item>Text1 (8).txt</Item><Item>Text1 (9).txt</Item></archiv></Datei><Datei><archiv name="b_20080704105146_backup"><Item>Text1 (1).bak</Item><Item>Text1 (10).txt</Item><Item>Text1 (11).txt</Item><Item>Text1 (12).alf</Item><Item>Text1 (3).dmp</Item><Item>Text1 (4).sav</Item><Item>Text1 (5).txt</Item><Item>Text1 (6).txt</Item><Item>Text1 (7).txt</Item><Item>Text1 (8).txt</Item><Item>Text1 (9).txt</Item><Item>text2.cdc</Item></archiv></Datei></root>';
		var xmlDocument;
		
		// Browserabhängigen Domparser wählen
		// IE
		if (window.ActiveXObject) {
         	xmlDocument = new ActiveXObject("MSXML2.DomDocument.6.0");
         	xmlDocument.loadXML(xmlString);
		// Mozilla
      	} else if (document.implementation) {
        	 xmlDocument = (new DOMParser()).parseFromString(xmlString, "text/xml");
      	}
		// gefüllten XMLBaum zurückgeben
		return xmlDocument;

	}
	
</script>
</head>
<body>
	<form>
		Filename eingeben: <input type="text" name="filename" id="filename">
		<input type="button" value="Auswahl" onclick="doTest();">
		
	</form>
	<div id="myTable"></div>
</body>
</html>

XML:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >

	<xsl:output method="html" />
	
	<xsl:param name="filename" select="''" />
	
	
	<!-- Einsprungpunkt der Verarbeitung  -->
	<xsl:template match="/">
		<table border="1">
			<xsl:apply-templates select="//archiv[Item=$filename]"/>
			<tr>
				<th>Anzahl der Treffer</th>
				<td><xsl:value-of select="count(//archiv[Item=$filename])" /></td>
			</tr>
		</table>
	</xsl:template>
	
	<xsl:template match="archiv">
		<tr>
		 <td><xsl:value-of select="@name" /></td>
		 <td><xsl:value-of select="$filename" /></td>
		</tr>
	</xsl:template>

	
</xsl:stylesheet>
 
Zuletzt bearbeitet von einem Moderator:
Deine Frage hat sich mit meiner Antwort überschnitten. Ich hatte sie noch nicht gelesen, aber ich glaube sie passt trotzdem ;-)
 
Jep super Funktioniert :)

divTag.innerHTML = ""; hatte mir noch gefehlt!

Hast mir super geholfen.

Ich stelle dann nochmal das fertige script mit ajax rein!

Vielen Dank nochmal

Compane
 
Zurück