2014-05-12 2 views
0

요소 목록을 순환하려면 XML이 필요하고 그 안에 '웹 개발'이있는 XML 만 표시하면됩니다. 무수한 솔루션을 시도했지만 원하는 결과물을 제공하는 것은 없습니다.XML 특정 요소를 선택하고 표시하려면 어떻게해야합니까?

XML 코드 :

<?xml version="1.0" encoding="iso-8859-1"?> 
<assignment> 
    <workhistory> 
     <workplace> 
      <jobinfo> 
       <joblength>March - February</joblength> 
       <jobrole>Librarian</jobrole> 
      </jobinfo> 
     </workplace> 

     <workplace> 
      <jobinfo> 
       <joblength>April - July</joblength> 
       <jobrole>Web Development</jobrole> 
      </jobinfo> 
     </workplace> 
    </workhistory> 
</assignment> 

XSL 코드 : 어떻게

<?xml version="1.0" encoding="ISO-8859-1"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:strip-space elements="*"/> 

<xsl:template match="assignment"> 
<html> 
    <head></head> 
    <body> 
     <xsl:apply-templates select="workhistory/workplace/jobinfo/jobrole"/> 
    </body> 
</html> 
</xsl:template> 

나는 이것이 'jobrole'의 모든 요소를 ​​인쇄하는 것을 알고 나는 이유를 이해, 난 그냥 작동하지 수 출력하고 싶습니다. 참고 : XSLT 1.0을 사용하고 있습니다.

답변

3

술어 <xsl:apply-templates select="workhistory/workplace/jobinfo/jobrole[. = 'Web Development']"/>을 추가하십시오.

+0

아, 이것은 완벽하게 작동합니다. 비슷한 것을 시도했지만 다소 다른 구문을 사용했습니다 (분명히 작동하지 않았습니다). 이게 어떻게 작동하는지 설명해 주시겠습니까? 마음의 평화를 위해서. – SixTailedFox

+0

XSLT는 XPath와 함께 작동하며 XPath 언어를 사용하면 대괄호 안에 술어를 추가하여 표현식이 선택하는 노드 집합을 필터링 할 수 있습니다. 언어에 대한 자세한 내용은 http://www.w3.org/TR/xpath/를 참조하십시오. 또는 처음 사용하는 경우 http://zvon.org/xxl/XPathTutorial/General/examples.html과 같은 XPath 자습서로 시작하십시오. –

관련 문제