jquery xml in html auslesen

Curry92

Grünschnabel
Ich möchte aus einem XML daten in eine html Tabelle speichern, das mit den daten auslesen habe ich schon geschafft aber die anzeige macht mir probleme.
Ich möchte sie zweidimensional anzeigen also auf der x-,y-achse sollen daten ausgegeben werden.
Das war auch noch machbar aber jetzt werden die schnittstellen zwischen der x und y achse nicht angezeigt..
Wie füge ich in die schnittstellen leere spalten ein?

grüße
 
Zuletzt bearbeitet:
Ich verstehe leider nicht was du willst. Meinst du mit x- und y-Achse die Zeilen und Spalten der Tabelle?

Zeig doch mal deine Eingabedaten (XML), deinen jetzigen Code und die Wunsch-Ausgabe (Beispiel Tabelle).
 
hier sind die funktionen die die tabellen befüllen:

Code:
function createDimension(dRow) {

    var myTable = document.createElement("table");
    var mytablebody = document.createElement("tbody");
    var selectedProj = $('#ui_Project option:selected').text();

    for (var j = 0; j < 1; j++) {
        mycurrent_row = document.createElement("tr");
        mycurrent_row1 = document.createElement("tr");
        $.get(selectedProj, {}, function (xml) {   
            $('BiDimension', xml).children('Name').each(function (d) {

                var title2 = $(this).text();
                mycurrent_cell = document.createElement("td");
                currenttext = document.createTextNode(title2);
                mycurrent_cell.appendChild(currenttext);
                mycurrent_row.appendChild(mycurrent_cell);
                mytablebody.appendChild(mycurrent_row);


            });
        });
    }

    myTable.appendChild(mytablebody);
    return myTable;
}

//create Measures
function createMeasure(mRow) {

    var myTable = document.createElement("table");
    var mytablebody = document.createElement("tbody");
    var selectedProj = $('#ui_Project option:selected').text();
    var selectedCube = $('#ui_Cubes option:selected').text();
    var cube;


        $.get(selectedProj, {}, function (xml) {
          
            $('BiCube', xml).find('BiMeasure').children('Name').each(function (d) {

                cube = $(this).parent().parent().parent().children('Name').text();

                if (cube === selectedCube) {
                    for (var i = 0; i < 1; i++) {


                        var title2 = $(this).text();  
                        mycurrent_row = document.createElement("tr");
                        mycurrent_cell = document.createElement("td");
                        currenttext = document.createTextNode(title2);
                        mycurrent_cell.appendChild(currenttext);
                        mycurrent_row.appendChild(mycurrent_cell);
                        mytablebody.appendChild(mycurrent_row);
                    }
                }
            });

        });


    myTable.appendChild(mytablebody);
    return myTable;
}

ausgeben soll es sowas:
http://www.google.at/imgres?q=zweid...rt=0&ndsp=25&ved=1t:429,r:13,s:0&tx=168&ty=85

also die measures gehn vertikal runter und die dimensions horizontal rüber
ich hoff das war verständlicher :)

grüße
 
also den text soll es nicht so drehen wie in dem beispiel.
einfach so

__|B |C |D |E |F |G |H |I |...
A1|__|__|__|__|__|__|__|__|__|
A2|__|__|__|__|__|__|__|__|__|
A3|__|__|__|__|__|__|__|__|__|
A4|__|__|__|__|__|__|__|__|__|
 
Zuletzt bearbeitet:
Das ist schon mal Aufschlussreicher als dein erster Post ;-)

Aber das XML wäre noch wichtig, denn ich kann nicht ahnen wie "BiCube", "BiMeasure" und "Name" vorliegen.

Aber eins kann ich direkt sagen: Wenn man größere Änderungen am DOM vornimmt, benutzt man besser nicht createElement, createTextNode, appendChild und den ganzen Kram, sondern baut sich einen großen HTML-String zusammen und steckt diesen erst dann ins Dokument. Das ist wesentlich performanter. In deinem Fall wohl auch übersichtlicher.
 
das xml ist so aufgebaut:

Code:
hier sind die measure drinnen (sind normal mehr)
<BiCubes>
<BiCube>
      <Name>SWB</Name>
      <ID>Cube_BMM</ID>
      <BiMeasures>
        <BiMeasure>
          <Name>h_Auftrag_Anzahl</Name>
          <ID>Dim Auftrag Count</ID>
          <AggregateFunction>Count</AggregateFunction>
          <MeasureGroupID>Dim Auftrag</MeasureGroupID>
          <SourceColumn>Auftrag_ID</SourceColumn>
          <Visible>false</Visible>
        </BiMeasure>
</BiCube>
</BiCubes>

.....
 und hier die dimensions:

<BiDimensions>
 <BiDimension>
      <Name>Verkehrsunternehmen</Name>
      <ID>Verkehrsunternehmen</ID>
</BiDimension>
<BiDimension>
      <Name>Anlage</Name>
      <ID>dim_Anlage</ID>
 </BiDimension>
</BiDimensions>

Würde es sonst vl mit einem datatable plugin ****en?

grüße
 
Tut mir Leid, vielleicht stehe ich auf dem Schlauch, aber ich weiß nicht wie daraus eine Tabelle werden soll.

Schreib dir mal nur die XML Knoten auf, die für dich interessant sind. Anschließend schreibst du für eins der XML Dokumente mal von Hand die komplette HTML Tabelle, so wie sie später aussehen soll. Vielleicht erkennst du dann, wie du das angehen musst.
 
So wie ich das verstehe, möchtest du soetwas:

(Nicht schön, aber selten. ;))

HTML:
var xml = jQuery( '<BiCubes><BiCube><Name>SWB</Name><BiMeasures><BiMeasure><Name>h_Auftrag_Anzahl</Name></BiMeasure><BiMeasure><Name>h_Auftrag_Anzahl2</Name></BiMeasure><BiMeasure><Name>h_Auftrag_Anzahl3</Name></BiMeasure></BiCube></BiCubes><BiDimensions><BiDimension><Name>Verkehrsunternehmen</Name><ID>Verkehrsunternehmen</ID></BiDimension><BiDimension><Name>Anlage</Name></BiDimension></BiDimensions>' ),
	dimension_count = xml.find( 'BiDimension' ).size(),
	table = '<table><tr><td></td>';

jQuery( 'BiDimension', xml ).each(function( i ){
	table += '<td>' + jQuery( 'Name', this ).text() + '</td>';
});

table += '</tr>';

jQuery( 'BiMeasure', xml ).each(function( i ){
	table += '<tr><td>' + jQuery( 'Name', this ).text() + '</td>';
	
	for( var i = 0; i < dimension_count; i++ ) {
		table += '<td></td>';
	}
	
	table += '</tr>';
});
	
table += '</table>';

jQuery( 'body' ).append( table );
 

Neue Beiträge

Zurück