我需要在 XML 中获取标签

I need to get a tag in XML

我需要获取包含在模块“Lenguajes de marcas y sistemas de gestión de información”中的课程名称。

我尝试这样做,但我不知道如何link彼此。

结果应该是:

Administración de Sistemas Informáticos en Red

Desarrollo de Aplicaciones Web

我已经开发了这个,谢谢你的帮助。

XML:

<?xml version="1.0" encoding="UTF-8"?>
<ies>
  <nombre>IES Abastos</nombre>
  <web>http://www.iesabastos.org</web>
  <ciclos>
    <ciclo id="ASIR">
      <nombre>Administración de Sistemas Informáticos en Red</nombre>
      <grado>Superior</grado>
      <decretoTitulo año="2009" />
    </ciclo>
    <ciclo id="DAW">
      <nombre>Desarrollo de Aplicaciones Web</nombre>
      <grado>Superior</grado>
      <decretoTitulo año="2010" />
    </ciclo>
    <ciclo id="SMR">
      <nombre>Sistemas Microinformáticos y Redes</nombre>
      <grado>Medio</grado>
      <decretoTitulo año="2008" />
    </ciclo>
  </ciclos>
  <modulos>
    <modulo id="0228">
      <nombre>Aplicaciones web</nombre>
      <curso>2</curso>
      <horasSemanales>4</horasSemanales>
      <ciclo>SMR</ciclo>
    </modulo>
    <modulo id="0372">
      <nombre>Gestión de bases de datos</nombre>
      <curso>1</curso>
      <horasSemanales>5</horasSemanales>
      <ciclo>ASIR</ciclo>
    </modulo>
    <modulo id="0373">
      <nombre>Lenguajes de marcas y sistemas de gestión de información</nombre>
      <curso>1</curso>
      <horasSemanales>3</horasSemanales>
      <ciclo>ASIR</ciclo>
      <ciclo>DAW</ciclo>
    </modulo>
    <modulo id="0376">
      <nombre>Implantación de aplicaciones web</nombre>
      <curso>2</curso>
      <horasSemanales>5</horasSemanales>
      <ciclo>ASIR</ciclo>
    </modulo>
  </modulos>
</ies>

XSL

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
  <html>
  <body>
  <h2>Ciclos</h2>
  <table border="1">
    <tr bgcolor="#9acd32">
      <th>Ciclo</th>
    </tr>
    <xsl:for-each select="ies/modulos/modulo[nombre = 'Lenguajes de marcas y sistemas de gestión de información']">
      <xsl:for-each select="ciclo">
        <tr>
          <td><xsl:value-of select="."/></td>
        </tr>
      </xsl:for-each>
    </xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

结果

<html>
   <body>
      <h2>Ciclos</h2>
      <table border="1">
         <tr bgcolor="#9acd32">
            <th>Ciclo</th>
         </tr>
         <tr>
            <td>ASIR</td>
         </tr>
         <tr>
            <td>DAW</td>
         </tr>
      </table>
   </body>
</html>

改变这个:

  <xsl:for-each select="ciclo">
    <tr>
      <td><xsl:value-of select="."/></td>
    </tr>
  </xsl:for-each>

进入:

  <xsl:for-each select="ciclo">
    <tr>
      <td><xsl:value-of select="/ies/ciclos/ciclo[@id=current()]/nombre"/></td>
    </tr>
  </xsl:for-each>

请注意current() 函数用于在其他 XPath 上下文中引用当前 XSLT 节点上下文。您也可以使用 xsl:key 指令和 key() 函数。

您可以使用 xsl:key 来获取 ciclosnombre
在顶层添加这个键

<xsl:key name="keyCiclos" match="ciclos/ciclo" use="@id" />

然后将内部 for 循环更改为

<tr>
  <td><xsl:value-of select="key('keyCiclos',.)/nombre"/></td>
</tr>