Announcement

Collapse
No announcement yet.

Mehrer E-Mails aus einem Element extrahieren

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

  • #16
    Funktioniert aber super. Danke!

    Comment


    • #17
      Welchen XSLT 2.0 Prozessor benutzt du denn?

      Comment


      • #18
        Ich benutze AltovaXML 2010.

        Comment


        • #19
          Gerade ist ein Problem mit dieser Ausgabe aufgetaucht
          Wenn auf die Email-Adresse bzw. die Webadresse ein Sonderzeichen folgt, wird dieses mit in den Link übernommen.

          Beispieltext:
          Code:
          Text davor [email protected], Text danach
          Ergebnis:
          Code:
          Text davor <a href="mailto:[email protected],">[email protected],</a> Text danach
          Hat jemand eine Idee, wie man dies beheben kann?

          Comment


          • #20
            Man muss den regulären Ausdruck verbessern, im Moment nimmt \S+@\S+ ja alles, was nicht als "white space" betrachtet wird. Vermutlich ist
            Code:
            regex="[\w.]+@[\w.]+"
            besser, aber ich habe mir nicht die Mühe gemacht, die aktuellen Regeln zu erlaubten Zeichen in Domainnamen und Emailadressen zu prüfen und dann einen möglichst präzisen regulären Ausdruck zu erstellen.

            Comment


            • #21
              xsl1 template

              Code:
              <?xml version="1.0"?>
              <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
              	<xsl:output indent="yes" method="xml"/>
              	<xsl:template match="/">
              		<root>
              			<xsl:apply-templates select="root"/>
              		</root>
              	</xsl:template>
              	<xsl:template match="root">
              		<xsl:apply-templates select="element"/>
              	</xsl:template>
              
              
              
              	<xsl:template match="element">
              		<xsl:variable name="all">
              			<tree>
              				<xsl:call-template name="all_leer">
              					<xsl:with-param name="str" select="text()"/>
              				</xsl:call-template>
              			</tree>
              		</xsl:variable>
              
              		<xsl:copy-of select="$all"/>
              	</xsl:template>
              	<xsl:template name="all_leer">
              		<xsl:param name="str"/>
              		<xsl:choose>
              			<xsl:when test="string-length(substring-after($str,' '))= 0">
              			</xsl:when>
              			<xsl:otherwise>
              				<xsl:choose>
              					<xsl:when test="contains(substring-before($str,' '),'@')">
              						<xsl:choose>
              							<xsl:when test="contains(substring-before($str,' '),',')">
              								<email>
              									<xsl:value-of select="substring(substring-before($str,' '),1,string-length(substring-before($str,' '))-1)"/>
              								</email>
              								<xsl:text>, </xsl:text>
              							</xsl:when>
              							<xsl:otherwise>
              								<email><xsl:value-of select="substring-before($str,' ')"/></email>
              							</xsl:otherwise>
              						</xsl:choose>
              					</xsl:when>
              					<xsl:otherwise>
              						<xsl:value-of select="concat(substring-before($str,' '),' ')"/>
              					</xsl:otherwise>
              				</xsl:choose>
              				<xsl:call-template name="all_leer">
              					<xsl:with-param name="str" select="substring-after($str,' ')"/>
              				</xsl:call-template>
              			</xsl:otherwise>
              		</xsl:choose>
              	</xsl:template>
              </xsl:stylesheet>
              ergebnis
              Code:
              <?xml version='1.0' encoding='UTF-8' ?>
              <root>
                <tree>aaa aaaa 
                  <email>[email protected]</email>bbbb bbbb 
                  <email>[email protected]</email>, ccc ccccc 
                  <email>[email protected]</email>dddd 
                </tree>
                <tree>aaa1 aaaa1 
                  <email>[email protected]</email>bbbb bbbb 
                  <email>[email protected]</email>ccc ccccc 
                  <email>[email protected]</email>dddd 
                </tree>
              </root>

              Comment


              • #22
                Vielen Dank für die Vorschläge!

                Comment

                Working...
                X