8
votes

Générez GUID dans XSLT

Je dois générer un GUID avec XSLT et si nécessaire c #, quelqu'un sait-il comment faire le mieux?

Il est de générer des identifiants uniques pour les éléments HTML.


1 commentaires

Il y a une courte expression xpath pour cela, voir: Stackoverflow.com/a/64792196/36305


4 Réponses :


1
votes

C # fournit une méthode statique GUID.NewGuid (). Je m'attendrais à ce que toute mise en œuvre XSLT puissance fortement tirer parti de certains composants spécifiques au système, car les GUID sont souvent générés en partie basés sur une adresse matérielle / mac / etc. sur la machine sous-jacente.


2 commentaires

Je sais sur le GUID.NewGuid, mais comment puis-je appeler cela de XSLT?


Une solution est via une méthode d'extension XSL comme ici: Pedautreppe.com /post/calling-c-fonction-in-xsl.aspx




1
votes

J'ai fini simplement en utilisant une méthode d'extension et une méthode d'emballage.NewGuid () dans une méthode statique, puis appelez ceci de mon XSLT, il était suffisamment facile une fois que j'ai compris comment fonctionnent les méthodes d'extension.


0 commentaires

0
votes

avec c #, il peut être réalisé facilement avec Blocs de script utilisant MSXSL: Script .

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:msxsl="urn:schemas-microsoft-com:xslt"
  xmlns:user="urn:my-scripts">
  <msxsl:script language="C#" implements-prefix="user">
  <![CDATA[
  public string getguid(){
     return Guid.NewGuid().ToString();
  }
  ]]>
  </msxsl:script>
  <xsl:template match="data">
    <Guid><xsl:value-of select="user:getguid()"/></Guid>
  </xsl:template>
</xsl:stylesheet>


0 commentaires