Announcement

Collapse
No announcement yet.

Xpath nit Namespaces

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Xpath nit Namespaces

    Hallo!

    Ich habe ein Dokument, dass so beginnt:

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">
      <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
        <Creator>drpe0001</Creator>
        <Title>Microsoft PowerPoint - Semantik Wiederholung.pptx</Title>
      </DocumentProperties>
      <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"></ExcelWorkbook>
      <Styles>
        <Style ss:ID="Default" ss:Name="Normal">
          <Alignment ss:Vertical="Top" ss:WrapText="1"/>
          <Font ss:FontName="Times New Roman" x:CharSet="204" x:Family="Roman" ss:Size="10"/>
        </Style>
    Ich weiß, wie ich die Elemente mit Präfix selektieren muss, aber ich kriegs einfach nicht gebacken, das Element Workbook/DocumentProperties/Title zu selektieren. Das hat ja keinen Präfix. Wie muss ich da mit dem Namespace umgehen?

  • #2
    Hat sich erledigt! Habs rausbekommen: //*[local-name()="Tagename"]

    Comment


    • #3
      Mit XSLT 2.0 nimmt man
      Code:
      <xsl:stylesheet
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xpath-default-namespace="urn:schemas-microsoft-com:office:spreadsheet"
        version="2.0">
      
      <xsl:template match="Workbook">...</xsl:template>
      
      </xsl:stylesheet>
      Mit XSLT 1.0 muss man nur im Stylesheet geeignete Präfixe deklarieren:
      Code:
      <xsl:stylesheet
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
        version="2.0">
      
      <xsl:template match="ss:Workbook">...</xsl:template>
      
      </xsl:stylesheet>
      denn die Präfixe im XSLT-Stylesheet müssen nicht mit denen im XML-Dokument übereinstimmen, nur die entsprechenden URIs müssen passen.

      Comment


      • #4
        Super, danke sehr!

        Comment

        Working...
        X