• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

XML in Html Tabelle einfügen, aber wie

Acer90

Mitglied
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.
 
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. :)

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'?>
<!-- ## Generated by Soldner-XML2Excel. Last Update on Tue Jun 17 17:56:51 2008 ## -->
<!--  ## Copyrights by The Online Gaming Community ##  -->
<!--  ## Visit http://www.togcom.de ##  -->
<XML>
    <Item
        sGameName="AK-74 (AR)"
        sSubType="Rifle"
        sWeight="medium"
        sCategorie="AR3_light"
        fSphere="0.5"
        sModel="AK74"
        sType="Weapon"
    >
        <Flags
            bAddOn="false"
        />
    </Item>
    <WeaponDesc
        btracers="false"
        iAmmoPerMag="30"
        fReloadSpeed="5.0"
        sDecal="Pistol_05"
        iShotsPerSecond="10"
        sScopeCam="CamPos"
        vScopeOff="0.00002 -0.00245 0.02"
        sFireModes="Single|Auto"
        fDecalSize="0.02"
        iReliability="82"
        vKEFalloff="1.0 0.7 0.4"
        fMuzzleVelocity="900.0"
        fCaliber="5.45"
        sZoom="Zoom_1x"
        fMuzzleSize="1.2"
        fRange="440.0"
        vScopeRot="89.3 0.0 0.0"
        fLength="415.0"
        fKillEnergy="59.0"
        bRotateMuzzleFire="false"
        sShot="G36shot"
        iMaxMags="5"
        sAccuracy="Stand:0.68;Sneak:0.80;Crouch:0.88"
        vRecoilFactor="0.35 0.21 0.10"
        vRecoilZoomed="0.30 0.15 0.06"
        sZoomAccuracy="Stand:0.71;Sneak:0.83;Crouch:0.91"
        iOffAngle="12"
        fWeight="3.6"
        sGunShellFX="GunShellFX"
        sFX_Shoot="defaultEmitter"
    />
    <EconomicalData
        sUsedBy="7 86"
        iCountryOrigin="7"
        fRareness="1.0"
        bReward="true"
        iBasePrice="1700"
    />
    <Sounds>

        <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>
</XML>
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);

Ausgabe:

Code:
<div>
  <h1>AK-74 (AR)</h1>
  <table border="1">
    <tr>
      <td>btracers</td>
      <td>false</td>
    </tr>
    <tr>
      <td>iAmmoPerMag</td>
      <td>30</td>
    </tr>
    <tr>
      <td>fReloadSpeed</td>
      <td>5.0</td>
    </tr>
  </table>
</div>
 
Zurück
Oben