Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst XSLT-Problem mit xlmns-Namespaces im XML-Source-File

Mitglied: 56760

56760 (Level 1)

02.11.2007, aktualisiert 16:17 Uhr, 7958 Aufrufe, 2 Kommentare

Nur ohne die Namespaces im ersten Tag, läuft die XSLT-Transformation wie erwartet.

Hallo,

weil msxslt keine xlmns-Namespaces im XML verarbeiten kann, bin ich auf Saxon umgestiegen.
Sowohl mit XSLT 1.0 noch XSLT 2.0 habe ich dort das folgende Problem:

Meine XML-Datei, die transformiert werden soll:


<?xml version="1.0" encoding="UTF-8"?>
<!-- Damit geht's -->

<taskmanager version="1.0" >

<!-- Damit nicht!
<taskmanager version="1.0" xmlns="NAMESPACE1"
xmlns:bis="NAMESPACE2"
xmlns:ddt="NAMESPACE3"
xmlns:cml="NAMESPACE4"
xmlns:log="NAMESPACE5"
....
>
-->

<tasks>
<import assembly="Test.dll" />
</tasks>


<!-- Irgendein Kommentar -->
<procedure>Test</procedure>



</taskmanager>

Mein xslt-Stylesheet sieht wie folgt aus:
<?xml version="1.0" encoding="UTF-8"?>

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

<xsl:output method="xml" encoding="utf-8" indent="yes" />

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

<xsl:template match="taskmanager">
<Taskmanager>
<xsl:apply-templates select="tasks"/>
<xsl:apply-templates select="procedure"/>
</Taskmanager>
</xsl:template>

<xsl:template match="tasks">
<Tasks>
</Tasks>
</xsl:template>

<xsl:template match="procedure">
<test>
<xsl:text>Test</xsl:text>
</test>
</xsl:template>
</xsl:stylesheet>

Nur, wenn ich die xlmns auskommentiere, dann erhalte ich das Ergebnis:

<?xml version="1.0" encoding="utf-8"?>
<Taskmanager>
<Tasks/>
<test>Test</test>
</Taskmanager>

Kommentier ich's wieder ein, dann erhalte ich nur:
<?xml version="1.0" encoding="utf-8"?>

aber keinen Fehler vom XSLT-Prozessor.

Kennt jemand eine Lösung wie es auch mit den xlmns-Namespaces klappt?

Herzlichen Dank im Voraus.
Mitglied: 56760
02.11.2007 um 13:17 Uhr
Ich hab inzwischen einen Lösungsansazt durch googeln gefunden.

Die Namespaces müssen auch ins XSLT rein:

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

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

xmlns="NAMESPACE1"
xmlns:bis="NAMESPACE2"
xmlns:ddt="NAMESPACE3"
xmlns:cml="NAMESPACE4"
xmlns:log="NAMESPACE5"
....

<xsl:output method="xml" encoding="utf-8" indent="yes" />

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

<xsl:template match="taskmanager">
<Taskmanager>
<xsl:apply-templates select="tasks"/>
<xsl:apply-templates select="procedure"/>
</Taskmanager>
</xsl:template>

<xsl:template match="tasks">
<Tasks>
</Tasks>
</xsl:template>

<xsl:template match="procedure">
<test>
<xsl:text>Test</xsl:text>
</test>
</xsl:template>
</xsl:stylesheet>

Aber leider hilft das auch nicht weiter.
Kommentiere ich nach dieser Änderung im XML die xmlns-Anteile wieder ein, dann ist das Ergebnis leider immer noch das alte.
Bitte warten ..
Mitglied: 56760
02.11.2007 um 16:17 Uhr
Inzwischen hab ich die Lösung gefunden.

http://www.webmasterworld.com/forum26/227.htm

Es ging nur um den ersten Namespace xlmns="NAMESPACE1"
Dieser muss im Stylesheet (wie im ersten Versuch bereits geschehen) mit einem Prefix (z. B. sio)eingefügt werden.

Anschließend alle Matches und selects um das Prefix "sio:" ergänzen.

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sio="NAMESPACE1">

<xsl:output method="xml" encoding="utf-8" indent="yes" />



<xsl:template match="/">
<xsl:apply-templates select="sio:taskmanager"/>
</xsl:template>

<xsl:template match="sio:taskmanager">
<Taskmanager>
<xsl:apply-templates select="sio:tasks"/>
<xsl:apply-templates select="sio:procedure"/>
</Taskmanager>
</xsl:template>

<xsl:template match="sio:tasks">
<Tasks>
</Tasks>
</xsl:template>

<xsl:template match="sio:procedure">
<test>
<xsl:text>Test</xsl:text>
</test>
</xsl:template>
</xsl:stylesheet>
Bitte warten ..
Ähnliche Inhalte
XML

XML - XSLT Formatierung mehrere verschiedene Werte

gelöst Frage von chrisenXML13 Kommentare

Hallo zusammen, ich habe eine Frage zur Konvertierung eines XML Dokuments mit XSLT in ein anderes XML Dokument. Es ...

XML

XSLT Sortierung

gelöst Frage von chrisenXML5 Kommentare

Hallo zusammen, ich habe folgendes Problem mit einer XSLT Datei: Ich stehe irgendwie gerade auf dem Schlauch Vielleicht hat ...

XML

XSLT v2 in XSLT v1

gelöst Frage von chrisenXML3 Kommentare

Hallo zusammen, ich habe ein Problem mit der Konvertierung vom XML Dateien via XSLT. Version 2 und Version 1. ...

XML

Xml Datei zeigt bei der Ausgabe durch xslt keine Struktur mit Knoten an

Frage von usenussiXML4 Kommentare

Nachdem ich in der xslt Schleifen für die Bestellungen eingebaut habe, wird keine Ausgabe mit den Knoten (Feldern ausgegeben). ...

Neue Wissensbeiträge
Internet

Schwarzer Tag für die Netzfreiheit: Die umstrittene Urheberrechtsreform wurde beschlossen

Information von Frank vor 13 StundenInternet22 Kommentare

Ich zitiere einfach mal Julia Reda von den Piraten, da mir selbst einfach die Worte dazu fehlen: Schwarzer Tag ...

Internet
Ist zwar keien Anleitung, aber
Anleitung von SachsenHessi vor 14 StundenInternet1 Kommentar

oder doch eine Anleitung ? Für die nächste EU-Wahl ? SH

PHP
Pfsense - Vouchergenerator 1.6.1
Anleitung von cafepost vor 15 StundenPHP

Hallo Zusammen , aus Sicherheitsgründen wurde mein Server auf den neuesten Stand gebracht, jetzt wollte ich den Vouchergenerator 1.6.1 ...

Internet

Verlag protestiert gegen Artikel 13 (jetzt Artikel 17) der geplanten EU-Verordnung

Information von Dilbert-MD vor 18 StundenInternet

Leider etwas spät, aber immerhin hat auch der heise-Verlag eingesehen, dass die Umsetzung der Urheberrechtsreform - so wie sie ...

Heiß diskutierte Inhalte
Internet
Schwarzer Tag für die Netzfreiheit: Die umstrittene Urheberrechtsreform wurde beschlossen
Information von FrankInternet22 Kommentare

Ich zitiere einfach mal Julia Reda von den Piraten, da mir selbst einfach die Worte dazu fehlen: Schwarzer Tag ...

Voice over IP
Mikrotik: Voip mit SIP Phones in verschiedenen Subnetzen mit FritzBox
Frage von SpartacusVoice over IP20 Kommentare

Hallo, ich habe das Problem, dass ich verschiedene SIP-Clients in unterschiedlichen Subnetzen habe, die mit meinem Server FritzBox7412 keine ...

Batch & Shell
Computer im Active Directory filtern
Frage von chkdskBatch & Shell16 Kommentare

Hallo Zusammen, ich möchte über die Powershell Computer im Active Directory filtern. Als Beispiel: listet mir alle Computer auf, ...

LAN, WAN, Wireless
Netzwerkkomponenten von 2011 und nur 100 Mbit?
gelöst Frage von FalaffelLAN, WAN, Wireless16 Kommentare

Hallo zusammen, ist es möglich, dass bei Netzwerkkomponenten von ca. 2011 nicht mehr wie 100 Mbit möglich ist? Konkret ...