저는이 작업을 올바르게 수행하고 있지만 경로가 엉망입니다.변수 ID를 통해 변수 ID를 통해 개체의 이름을 선택할 수 없습니다. 각주기마다 param, templates를 사용합니다.
내가하려는 것은 i5 또는 i7 프로세서가있는 XML의 모든 구성 정보를 포함하는 테이블을 작성하는 것입니다. 구성 요소의 구성 요소 ID를 가져 와서 구성 요소 ID와 components 요소. 필자는 Config_Name과 MB_Producer의 두 요소에 대해서만이 작업을 시도했습니다. Config_Name이 성공적으로 표시되었지만 마더 보드의 이름을 얻지 못했습니다. 도와주세요!
다음은 XML이다 :
<?xml version="1.0"?>
<PCStore>
<Components>
<Motherboards>
<MB_Producer id="1">ASRock</MB_Producer>
<MB_Producer id="2">GIGABYTE</MB_Producer>
<MB_Producer id="3">Foxconn</MB_Producer>
<MB_Producer id="4">Asus</MB_Producer>
<MB_Producer id="5">MSI</MB_Producer>
</Motherboards>
<HDDs>
<HDD_Producer id="1">WD</HDD_Producer>
<HDD_Producer id="2">Seagate</HDD_Producer>
<HDD_Producer id="3">Baracuda</HDD_Producer>
<HDD_Producer id="4">TOSHIBA</HDD_Producer>
<HDD_Producer id="5">LG</HDD_Producer>
</HDDs>
<Physical_Memory>
<RAM_Producer id="1">Kingston</RAM_Producer>
<RAM_Producer id="2">Corsair</RAM_Producer>
<RAM_Producer id="3">Transcend</RAM_Producer>
<RAM_Producer id="4">SanDisk</RAM_Producer>
<RAM_Producer id="5">Maxell</RAM_Producer>
</Physical_Memory>
<CPUs>
<CPU_Producer id="1">Intel i3</CPU_Producer>
<CPU_Producer id="2">Intel i5</CPU_Producer>
<CPU_Producer id="3">Intel i7</CPU_Producer>
<CPU_Producer id="4">AMD Athlon</CPU_Producer>
<CPU_Producer id="5">AMD Phenom</CPU_Producer>
</CPUs>
<GPUs>
<GPU_Producer id="1">NVIDIA</GPU_Producer>
<GPU_Producer id="2">AMD</GPU_Producer>
<GPU_Producer id="3">Intel</GPU_Producer>
<GPU_Producer id="4">GIGABYTE</GPU_Producer>
<GPU_Producer id="5">Sapphire</GPU_Producer>
<GPU_Producer id="6">Palit</GPU_Producer>
</GPUs>
<Cases>
<Case_Producer id="1">SPIRE</Case_Producer>
<Case_Producer id="2">SWEEX</Case_Producer>
<Case_Producer id="3">CoolerMaster</Case_Producer>
<Case_Producer id="4">Antec</Case_Producer>
<Case_Producer id="5">AOpen</Case_Producer>
<Case_Producer id="6">Corsair</Case_Producer>
</Cases>
</Components>
<Configurations>
<Configuration>
<Config_Name>Base Model</Config_Name>
<MB_Producer>3</MB_Producer>
<Case_Producer>1</Case_Producer>
<Hard_Drive>
<HDD_Producer>1</HDD_Producer>
<Size>360GB</Size>
</Hard_Drive>
<Physical_Memory>
<RAM_Producer>3</RAM_Producer>
<Size>2GB</Size>
</Physical_Memory>
<Processor>
<CPU_Producer>1</CPU_Producer>
<Clock_Rate>2.6Ghz</Clock_Rate>
</Processor>
<Video_Card>
<GPU_Producer>3</GPU_Producer>
<Memory>256MB</Memory>
</Video_Card>
</Configuration>
<Configuration>
<Config_Name>Gaming Entry Model</Config_Name>
<MB_Producer>2</MB_Producer>
<Case_Producer>4</Case_Producer>
<Hard_Drive>
<HDD_Producer>2</HDD_Producer>
<Size>360GB</Size>
</Hard_Drive>
<Physical_Memory>
<RAM_Producer>3</RAM_Producer>
<Size>4GB</Size>
</Physical_Memory>
<Processor>
<CPU_Producer>2</CPU_Producer>
<Clock_Rate>3.2Ghz</Clock_Rate>
</Processor>
<Video_Card>
<GPU_Producer>2</GPU_Producer>
<Memory>512MB</Memory>
</Video_Card>
</Configuration>
<Configuration>
<Config_Name>Mid-Level Gaming Model</Config_Name>
<MB_Producer>5</MB_Producer>
<Case_Producer>2</Case_Producer>
<Hard_Drive>
<HDD_Producer>4</HDD_Producer>
<Size>500GB</Size>
</Hard_Drive>
<Physical_Memory>
<RAM_Producer>5</RAM_Producer>
<Size>8GB</Size>
</Physical_Memory>
<Processor>
<CPU_Producer>3</CPU_Producer>
<Clock_Rate>3.6Ghz</Clock_Rate>
</Processor>
<Video_Card>
<GPU_Producer>1</GPU_Producer>
<Memory>1024MB</Memory>
</Video_Card>
</Configuration>
<Configuration>
<Config_Name>Pro-Gamer Model</Config_Name>
<MB_Producer>2</MB_Producer>
<Case_Producer>3</Case_Producer>
<Hard_Drive>
<HDD_Producer>2</HDD_Producer>
<Size>1024GB</Size>
</Hard_Drive>
<Physical_Memory>
<RAM_Producer>1</RAM_Producer>
<Size>16GB</Size>
</Physical_Memory>
<Processor>
<CPU_Producer>3</CPU_Producer>
<Clock_Rate>3.8Ghz</Clock_Rate>
</Processor>
<Video_Card>
<GPU_Producer>1</GPU_Producer>
<Memory>1024MB</Memory>
</Video_Card>
</Configuration>
</Configurations>
</PCStore>
그리고 여기에 XSLT의 :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="PCStore">
<html>
<head>
<title>Configurations</title>
</head>
<body>
<h2>Задача 2, Данаил Найденов, F66840</h2>
<h3>Configurations</h3>
<table border="6">
<tr bgcolor="#AFAFAF">
<td>Configurations</td>
<td>MB_Producer</td>
</tr>
<xsl:for-each select="Configurations/Configuration">
<xsl:sort select="Config_Name"/>
<tr>
<td><xsl:value-of select="Config_Name"/></td>
<td bgcolor="#EFEFEF">
<xsl:apply-templates select="PCStore/Components/Motherboards">
<xsl:with-param name="MB_Producer" select="MB_Producer" />
</xsl:apply-templates>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="PCStore/Components/Motherboards">
<xsl:param name="MB_Producer" />
<xsl:value-of select="MB_Producer[@id=$MB_Producer]" />
</xsl:template>
</xsl:stylesheet>
내가 어떤 도움을 주셔서 감사합니다 정말 것 ...
이 시간 내 주셔서 감사합니다!