come selezionare l'elemento specificato utilizzando XSLT tramite il suo indice?

ho un file xml qui:

<DM_Function Function="attribute value">
  <DM>
    <DM_Source SourceID="id1" SourceTitle="Title1" SourceContent="content1">
    </DM_Source>
  </DM>
  <DM>
    <DM_Source SourceID="id2" SourceTitle="Title2" SourceContent="content2">
    </DM_Source>
  </DM>
  <DM>
    <DM_Source SourceID="id3" SourceTitle="Title3" SourceContent="content3">
    </DM_Source>
  </DM>
</DM_Function>

nel file XSLT c'è una variabile:

<xsl:param name="dmIndex" select="2" />

voglio trasformare il file XML in un altro.La variabile è l'indice dell'elemento, spero che l'altro file XML mostri soltanto l'elemento Root e l'elemento specificato (inclusi gli attributi).


En title : How to select specified element using XSLT by its index?

5 Comments:

  1. questa trasformazione:

    <xsl:stylesheet version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output omit-xml-declaration="yes" indent="yes"/>
        <xsl:strip-space elements="*"/>
    
      <xsl:param name="dmIndex" select="2" />   
    
     <xsl:template match="/*">
        <xsl:copy>
          <xsl:copy-of select="@*"/>
          <xsl:copy-of select="DM[$dmIndex]"/>
        </xsl:copy>
     </xsl:template>
    </xsl:stylesheet>
    

    se applicato sul documento XML fornito:

    <DM_Function Function="attribute value">
      <DM>
        <DM_Source SourceID="id1" SourceTitle="Title1" SourceContent="content1">
        </DM_Source>
      </DM>
      <DM>
        <DM_Source SourceID="id2" SourceTitle="Title2" SourceContent="content2">
        </DM_Source>
      </DM>
      <DM>
        <DM_Source SourceID="id3" SourceTitle="Title3" SourceContent="content3">
        </DM_Source>
      </DM>
    </DM_Function>
    

    produce il risultato voluto, corretto:

    <DM_Function Function="attribute value">
       <DM>
          <DM_Source SourceID="id2" SourceTitle="Title2" SourceContent="content2"/>
       </DM>
    </DM_Function>
    
    1. @Howard-Jia: Glad questo è stato utile. e poi come accettare la mia risposta (cliccando sul segno di spunta vicino alla risposta)? :):)
  2. buona domanda (+ 1). guarda la mia risposta per una soluzione breve e completa.

More similar articles:

  • come visualizzare il valore predefinito dell'elemento XML specificato in XSD utilizzando XSLT?
  • come impostare il valore di un web.xml context-param utilizzando XSLT e ANT?
  • XSLT: passaggio attributo da elemento xml ad un altro elemento xml come param
  • come impostare un nome dello spazio dei nomi in XSLT tramite param
  • XSLT: imposta l'asterisco come valore di param predefinito
  • XSLT 2.0 divide un elemento attorno ad un bambino specificato
  • passando XPath come param a XSLT con C #,
  • XSLT 2.0: aggiungere un nuovo elemento al suo posto valido in una sequenza di elementi come specificato da xsd: sequence
  • come utilizzare XSLT per abbinare i nodi in cui un attributo cade in un intervallo di valori specificato da una variabile?
  • XSLT 1.0 - estrarre node-set e passare come param
  • in XSLT è possibile utilizzare il valore di un'espressione XPath in una chiamata ad un modello utilizzando un param
  • ottieni la parola esatta da param utilizzando XSLT?
  • ordinamento degli elementi XML utilizzando l'ordine basato su XSLT specificato in doc esterno
  • come evitare l'uso eccessivo di variabili in XSLT usando il modello di chiamata o il param o la chiave?
  • XSLT - Sposta l'ultimo elemento sopra l'elemento specificato
  • aggiornare il testo di un elemento con XSLT basato su param
  • come iterare attraverso il param XML in XSLT
  • XSLT Ho bisogno di filtrare l'elemento in base al valore del param
  • utilizzando XSLT per trasformare le voci XML un numero specificato di volte ciascuna
  • XSLT: ottieni l'elemento più vicino con un valore specificato definito? (Sitecore)
  • come concatenare i param in XSLT 1.0?
  • XSLT: come posso inserire dati da una tabella di controllo dinamico?
  • come contare gli elementi in categorie e confrontarli con altre categorie in XSLT
  • XSLT: controlla se un gruppo di elementi ha un elemento bambino con un valore specificato
  • passa param come espressione XPath a XSLT - javascript
  • XSLT: come restituire i risultati da una chiave, nell'ordine specificato
  • selezione di stringhe/letterali da un elemento nodo figlio specificato usando XSLT
  • come rimuovere i nodi che hanno un valore di attributo diverso da quello specificato usando XSLT?
  • XSLT - XSL: problemi con il template selezionare l'istruzione corrispondente al param
  • sto scrivendo XSLT dove ho dichiarato inizialmente "Settlement conto bancario id" come param