Fragender: Leerzeichen innerhalb von <thema> bzw. Anführungszeichen

Hi Leutz!

Hab schon ne ganze Weile gegoogelt, doch nicht das passende gefunden! Darum hoff ich jetzt hier um Rat :-)
Zu meinen Problem: Ich möchte auf Spaltenköpfe einer Datenbank mittels <xsl_value-of selected="spaltenname" /> zugreifen und die einzelnen Werte auslesen. Das klappt soweit, ABER leider besteht ein Name der Spaltenköpfe aus zwei Worten (Bsp.: "Name Ort"). Und deshalb übernimmt er die Informationen aus dieser Spalte nicht! Habe schon verschiedene Codierungen für das Leerzeichen probiert, doch leider klappt nix!
Wisst ihr einen Rat??? Vielen Dank schonmal im Voraus :-)

Grüße

  1. Hallo

    Hab schon ne ganze Weile gegoogelt, doch nicht das passende gefunden! Darum hoff ich jetzt hier um Rat :-)

    Hängt von der Fragestellung ab ;-)

    Zu meinen Problem: Ich möchte auf Spaltenköpfe einer Datenbank mittels <xsl_value-of selected="spaltenname" /> zugreifen und die einzelnen Werte auslesen. Das klappt soweit, ABER leider besteht ein Name der Spaltenköpfe aus zwei Worten (Bsp.: "Name Ort"). Und deshalb übernimmt er die Informationen aus dieser Spalte nicht!

    Wie sieht denn deine XML-Datei und das zugehörige XSL aus? Mit der Problembeschreibung lässt sich leider nicht viel anfangen.

    Viele Grüße,
    Robert

    1. Hi,

      Zu meinen Problem: Ich möchte auf Spaltenköpfe einer Datenbank mittels <xsl_value-of selected="spaltenname" /> zugreifen und die einzelnen Werte auslesen. Das klappt soweit, ABER leider besteht ein Name der Spaltenköpfe aus zwei Worten (Bsp.: "Name Ort"). Und deshalb übernimmt er die Informationen aus dieser Spalte nicht!

      Wie sieht denn deine XML-Datei [...] aus?

      Ich vermute mal ins blaue, dass aus Datenbank-Spaltennamen 1:1 Elementnamen im XML gemacht werden - und damit ein Start-Tag <Name Ort> entsteht.
      Dann wäre der Elementname aber nur "Name", von einem ungültigen Attribut "Ort" gefolgt.

      In dem Fall müsste also schon bei der Erzeugung des XML aus der Datenbank heraus eine Umwandlung vorgenommen werden, die das Leerzeichen durch ein in einem XML-Elementnamen erlaubtes Zeichen ersetzt, oder es entfernt.

      MfG ChrisB

      --
      RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  2. Hallo,
    ich selbst habe noch nicht viel mit Datenbanken gearbeitet.

    leider besteht ein Name der Spaltenköpfe aus zwei Worten (Bsp.: "Name Ort").

    Ist das nicht eigentlich etwas was man beim Bau der DB vermeidet?

    Gruß
    Kalk

    1. Hallo,

      ich selbst habe noch nicht viel mit Datenbanken gearbeitet.

      leider besteht ein Name der Spaltenköpfe aus zwei Worten (Bsp.: "Name Ort").

      Ist das nicht eigentlich etwas was man beim Bau der DB vermeidet?

      sicher kann man solche Spaltennamen vermeiden. Sie sind aber möglich, sie müssen auch für das Datenbankmanagementsystem beim Zugriff (und Anlegen) entsprechend behandelt werden, z.B.

      - ANSI-Quotes:     "Name Ort", sollte jedes DBMS können, einschaltbar
       - eckige Klammern: [Name Ort], z.B. in T-SQL und Jet-SQL
       - Backticks:       Name Ort, z.B Standard in MySQL

      Freundliche Grüße

      Vinzenz

  3. Hallo,

    also <xsl_value-of ... /> sieht schon mal grundsaetzlich fehlerhaft aus. Seit wann ist _ ein Trenner zwischen Namespace und Funktion/Element?

    Ansonsten waere in etwa von 3 Moeglichkeiten auszugehen:

    1. du bekommst keine Elemente:  <name ort>bla bla bla</name ort> weil sie schon gar nicht so erstellt werden koennen (als XML nicht, als Text schon)

    2. du bekommst Elemente solcher Natur: <name ort>bla bla bla</name ort>
      (was ich aber fuer nicht moeglich halte)

    in diesem Fall koenntest du es mit einem XPath Ausdruck à la *[name()='name ort'] versuchen

    1. du bekommst das Element aus der Datenbank entsprechend escaped/codiert:
      <name_x0020_ort>bla bla bla</name_x0020_ort>

    Hier liegt die Loesung auf der Hand, oder?

    Wie sieht denn das XML aus, was du bekommst?

    Ciao, Frank

    1. Hi! Sry das ich erst jetzt wieder schreiben kann...

      also <xsl_value-of ... /> sieht schon mal grundsaetzlich fehlerhaft aus. Seit wann ist _ ein Trenner zwischen Namespace und Funktion/Element?

      Ja, war nur nen Tipfehler. Da gehört natürlich nen ':' hin!

      1. du bekommst das Element aus der Datenbank entsprechend escaped/codiert:
        <name_x0020_ort>bla bla bla</name_x0020_ort>

      Das war die Lösung, Danke! :-)

      Wie sieht denn das XML aus, was du bekommst?

      Also nur nochmal kurz zum verständnis: ich hab ne Excel-Tabelle die ich in ner bestimmten Form in eine XML umwandeln möchte. In Excel geht das ja schließlich NICHT mit einer *.xsl-Datei! Also geh ich den Umweg über Access...dort erstell ich die Datenbank aus Excel und kann dann mit Hilfe der *.xsl die XML erzeugen! Also hab ich dann eine Struktur der Daten, so wie ich sie brauch! Problem: Die Spaltenköpfe dürfen nicht geändert werden (auch nicht in Excel) ... und ja(!) ich weis, das es unsinnig ist, leerzeichen in Spaltenköpfe zu haben, aber ich darf(!!!) sie nicht ändern, ich bekomm die so! Und wie die einzelnen Tags heißen, ist ja vollkommen egal, das mach ich mir ja! also an meinen Bsp. mal demonstriert:
      <Ortsname><xsl:value-of select="Name Ort" /></Ortsname>

      jetzt:
      <Ortsname><xsl:value-of select="Name_x0020_Ort" /></Ortsname>

      Es ging mir wie gesagt nur um das Ansprechen der Spaltenköpfe! Und bei der Umwandlung hat er mir immer leere Tags geliefert, weil innerhalb der select-Angabe keine Leerzeichen stehen dürfen!
      Also danke nochmal :-)

      1. Hallo Fragender,

        Also nur nochmal kurz zum verständnis: ich hab ne Excel-Tabelle die ich in ner bestimmten Form in eine XML umwandeln möchte. In Excel geht das ja schließlich NICHT mit einer *.xsl-Datei!

        Excel kann ab 2003 Arbeitsmappen als pures XML speichern (XML-Kalkulationstabelle). Dieses SpreadsheetML lässt sich durchaus mittels XSLT transformieren. Die relevanten Strukturen liegen unter Workbook / Worksheet (jeweils 1 pro Arbeitsblatt) / Table / Row / Cell / Data.

        Grüße,
        Thomas

        1. Excel kann ab 2003 Arbeitsmappen als pures XML speichern (XML-Kalkulationstabelle). Dieses SpreadsheetML lässt sich durchaus mittels XSLT transformieren. Die relevanten Strukturen liegen unter Workbook / Worksheet (jeweils 1 pro Arbeitsblatt) / Table / Row / Cell / Data.

          Grüße,
          Thomas

          Hallo Thomas!

          Also ich weis es nicht 100%ig, aber aus meinen jetzigen Wissensstand bezweifle ich, das ich meine gewünschte Struktur der XML nicht mit Excel realisieren kann! Ich weis das Excel xml erstellen kann, habe es auch schon ausprobiert, aber leider kam ich nicht zum gewünschten Ergebnis! Ich kann laut Excel eine XML-Schemadatei importieren aber keine *.xsl ... was auch komisch ist ^^ !
          Aber ich lass mich gern eines besseren Belehren! Wie kann ich denn in Excel die *.xsl einbinden??? Sicher unter Reiter Add-Ins > XML > Quellen !? Beim Export fragte mich Excel immer nach Row und Root (vergeben von Namen) ... hatte das ja aber in der *.xsl angegeben ^^

          Viele Grüße, Fragender

          1. Hallo Fragender,

            mein Ansatz bezog sich auf eine separate Transformation der exportierten XML-Struktur in ein beliebiges XML-Zielformat, z. B. mittels Saxon.

            Grüße,
            Thomas

      2. Hallo,

        Die Spaltenköpfe dürfen nicht geändert werden (auch nicht in Excel) ... und ja(!) ich weis, das es unsinnig ist, leerzeichen in Spaltenköpfe zu haben,

        da bin ich völlig anderer Ansicht. Selbstverständlich ist es sehr sinnvoll, in Spaltenüberschriften einer Tabellenkalkulation Leerzeichen verwenden zu können - und ich verwende in Excel sehr gerne Leerzeichen in Spaltenüberschriften.

        Freundliche Grüße

        Vinzenz