<?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);