XML in Html Tabelle einfügen, aber wie

Hallo Html.de Community,

Bin momentan am Arbeiten aus einer XML Datei (siehe Hier) bestimmte werte zu laden, und diese in eine Html Tabelle einzubinden( Söldner HQ - News).

Leider haben meine ersten Ansätze zu nichts geführt, und da ich noch nie mit XML gearbeitet habe bitte ich euch um Hilfe, wenn ihr also irgendeine Vorlage hättet würde mir dieses schon reichen.

Für eure Bemühungen danke ich schon mal im voraus.

mfg: Acer

Ich denke, du wirst das XML irgendwie in HTML umformen müssen. Dazu braucht es wahrscheinlich eine serverseitige Skriptsprache wie PHP. Darin kannst du dann mit XSL arbeiten oder auch einfach mit dem DOM-Tree. Mit weiteren Erklärungen halte ich mich mal noch zurück, da vielleicht PHP keine Option ist.

Php wäre auch möglich, habe aber nur wenig ahnung von PHP.

Ich meine, es gäbe noch eine Möglichkeit, die ohne serverseitiges Processing auskommt. XML Data Islands oder so ähnlich. Spontan habe ich aber weder einen guten Link dazu noch weiß ich, ob das von Browsern problemlos unterstützt wird (da bin ich skeptisch) oder wie die Transformation XML->HTML durchgeführt wird (vermutlich über XSLT).

Wenn du schon bei XSLT bist, kannst du es aber auch von PHP erledigen lassen. Der Code, der zusätzlich zur XSL-Datei benötigt wird, ist minimal.

XSLT ist jedenfalls die meiner Meinung nach einfachste Möglichkeit, XML umzuformen, auch wenn es auf den ersten Blick nicht so wirkt. :slight_smile:

Kleines Beispiel (bin leider selbst nicht sonderlich erfahren in XSLT):

[php]<?php

// Das müsste dann eben $xmlCode = file_get_contents(‚./pfad/zur/xmlDatei.xml‘);
// o. ä. lauten
$xmlCode = <<<EOT

<?xml version='1.0' encoding='UTF-8'?>
    <Shot
        sSound="AK74_Shot1"
    >
        <Trigger
            sTriggerName="Shoot_Audio"
            iLifeTime="500"
            fSize="40.0"
            bUpdatePos="false"
        />
    </Shot>
    <ShotEmpty
        sSound="G36_Shot_Dry"
    >
        <Trigger
            sTriggerName="Shoot_Audio"
            iLifeTime="500"
            fSize="2.0"
            bUpdatePos="false"
        />
    </ShotEmpty>
    <Reload
        sSound="AK74_ClipOut"
    >
        <Trigger
            sTriggerName="Noise"
            iLifeTime="500"
            fSize="2.0"
            bUpdatePos="false"
        />
    </Reload>

    <ReloadEnd
        sSound="AK74_ClipIn"
    >
        <Trigger
            sTriggerName="Noise"
            iLifeTime="500"
            fSize="2.0"
            bUpdatePos="false"
        />
    </ReloadEnd>
</Sounds>
<AnimOverride
    fSpeed="1.0"
>
    <RunTarget_Center
        ssrc="Group1_Rifle_Run_Target_Center"
        fblend="0.1"
    />
    <RunTarget_Left
        ssrc="Group1_Rifle_Run_Target_Left"
        fblend="0.1"
    />
    <RunTarget_Right
        ssrc="Group1_Rifle_Run_Target_Right"
        fblend="0.1"
    />
    <RunTarget_Up
        ssrc="Group1_Rifle_Run_Target_Up"
        fblend="0.1"
    />

    <RunTarget_Down
        ssrc="Group1_Rifle_Run_Target_Down"
        fblend="0.1"
    />
    <RunTarget_UpLeft
        ssrc="Group1_Rifle_Run_Target_UpLeft"
        fblend="0.1"
    />
    <RunTarget_UpRight
        ssrc="Group1_Rifle_Run_Target_UpRight"
        fblend="0.1"
    />
    <RunTarget_DownLeft
        ssrc="Group1_Rifle_Run_Target_DownLeft"
        fblend="0.1"
    />
    <RunTarget_DownRight
        ssrc="Group1_Rifle_Run_Target_DownRight"
        fblend="0.1"
    />
    <SneakTarget_Center
        ssrc="Group1_Rifle_Sneak_Target_Center"
        fblend="0.1"
    />
    <SneakTarget_Left
        ssrc="Group1_Rifle_Sneak_Target_Left"
        fblend="0.1"
    />
    <SneakTarget_Right
        ssrc="Group1_Rifle_Sneak_Target_Right"
        fblend="0.1"
    />
    <SneakTarget_Up
        ssrc="Group1_Rifle_Sneak_Target_Up"
        fblend="0.1"
    />

    <SneakTarget_Down
        ssrc="Group1_Rifle_Sneak_Target_Down"
        fblend="0.1"
    />
    <SneakTarget_UpLeft
        ssrc="Group1_Rifle_Sneak_Target_UpLeft"
        fblend="0.1"
    />
    <SneakTarget_UpRight
        ssrc="Group1_Rifle_Sneak_Target_UpRight"
        fblend="0.1"
    />
    <SneakTarget_DownLeft
        ssrc="Group1_Rifle_Sneak_Target_DownLeft"
        fblend="0.1"
    />
    <SneakTarget_DownRight
        ssrc="Group1_Rifle_Sneak_Target_DownRight"
        fblend="0.1"
    />
    <CrouchTarget_Center
        ssrc="Group1_Rifle_Crouch_Target_Center"
        fblend="0.1"
    />
    <CrouchTarget_Left
        ssrc="Group1_Rifle_Crouch_Target_Left"
        fblend="0.1"
    />
    <CrouchTarget_Right
        ssrc="Group1_Rifle_Crouch_Target_Right"
        fblend="0.1"
    />
    <CrouchTarget_Up
        ssrc="Group1_Rifle_Crouch_Target_Up"
        fblend="0.1"
    />

    <CrouchTarget_Down
        ssrc="Group1_Rifle_Crouch_Target_Down"
        fblend="0.1"
    />
    <CrouchTarget_UpLeft
        ssrc="Group1_Rifle_Crouch_Target_UpLeft"
        fblend="0.1"
    />
    <CrouchTarget_UpRight
        ssrc="Group1_Rifle_Crouch_Target_UpRight"
        fblend="0.1"
    />
    <CrouchTarget_DownLeft
        ssrc="Group1_Rifle_Crouch_Target_DownLeft"
        fblend="0.1"
    />
    <CrouchTarget_DownRight
        ssrc="Group1_Rifle_Crouch_Target_DownRight"
        fblend="0.1"
    />
    <RunFwd
        fHoldFP="0.1"
        ssrc="Rifle_Run_Fwd_Group01"
        fblend="0.1"
    />
    <RunBack
        fHoldFP="0.1"
        ssrc="Rifle_Run_Back"
        fblend="0.1"
    />
    <RunLeft
        fHoldFP="0.1"
        ssrc="Rifle_Run_Left"
        fblend="0.1"
    />
    <RunRight
        fHoldFP="0.1"
        ssrc="Rifle_Run_Right"
        fblend="0.1"
    />

    <SneakFwd
        fHoldFP="0.1"
        ssrc="Rifle_Sneak_Fwd_Group01"
        fblend="0.1"
    />
    <RunFwdLeft
        fHoldFP="0.1"
        ssrc="Rifle_Run_FwdLeft"
        fblend="0.1"
    />
    <RunFwdRight
        fHoldFP="0.1"
        ssrc="Rifle_Run_FwdRight"
        fblend="0.1"
    />
    <RunBackLeft
        fHoldFP="0.1"
        ssrc="Rifle_Run_BackLeft"
        fblend="0.1"
    />
    <RunBackRight
        fHoldFP="0.1"
        ssrc="Rifle_Run_BackRight"
        fblend="0.1"
    />
    <RunIdle
        ssrc="Rifle_Run_Idle_Group01"
        fblend="0.1"
    />
    <SneakIdle
        ssrc="Rifle_Sneak_Idle_Group01"
        fblend="0.1"
    />
    <CrouchIdle
        ssrc="Rifle_Crouch_Idle"
        fblend="0.1"
    />
</AnimOverride>
EOT;

$xslCode = <<<EOT

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet
version=„1.0“
xmlns:xsl=„http://www.w3.org/1999/XSL/Transform

<xsl:template match="/">
    <div>
        <xsl:apply-templates />
    </div>
</xsl:template>

<xsl:template match="Item">
    <h1><xsl:value-of select="@sGameName" /></h1>
</xsl:template>

<xsl:template match="WeaponDesc">
    <table border="1">
        <tr>
            <td>btracers</td>
            <td><xsl:value-of select="@btracers" /></td>
        </tr>
        <tr>
            <td>iAmmoPerMag</td>
            <td><xsl:value-of select="@iAmmoPerMag" /></td>
        </tr>
        <tr>
            <td>fReloadSpeed</td>
            <td><xsl:value-of select="@fReloadSpeed" /></td>
        </tr>
    </table>
</xsl:template>

</xsl:stylesheet>
EOT;

$xmldoc = new DOMDocument();
$xmldoc->preserveWhiteSpace = false;
$xmldoc->loadXML($xmlCode);

$xsldoc = new DOMDocument();
$xsldoc->preserveWhiteSpace = false;
$xsldoc->loadXML($xslCode);

$proc = new XSLTProcessor();
$proc->importStyleSheet($xsldoc);

$tmp = $proc->transformToDoc($xmldoc);
$tmp->formatOutput = true;

echo $tmp->saveXML($tmp->documentElement);[/php]

Ausgabe:

[code]

AK-74 (AR)

btracers false
iAmmoPerMag 30
fReloadSpeed 5.0
[/code]