저는 저의 평생 동안이 일을 할 수 없습니다. 다음은 itunes 제휴사의 RSS 피드에서 가져온 XML 스 니펫입니다. 나는 위에 인쇄를 태그에서 값을 원하지만 나는 어떤 이유로 수 없습니다 :xslt를 통해 iTunes 계열사 RSS를 번역합니다.
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns:im="http://itunes.apple.com/rss" xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
<id>http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/ws/RSS/toppaidapplications/sf=143441/limit=100/genre=6014/xml</id><title>iTunes Store: Top Paid Applications</title><updated>2010-03-24T15:36:42-07:00</updated><link rel="alternate" type="text/html" href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewTop?id=25180&popId=30"/><link rel="self" href="http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/ws/RSS/toppaidapplications/sf=143441/limit=100/genre=6014/xml"/><icon>http://phobos.apple.com/favicon.ico</icon><author><name>iTunes Store</name><uri>http://www.apple.com/itunes/</uri></author><rights>Copyright 2008 Apple Inc.</rights>
<entry>
<updated>date</updated>
<id>someID</id>
<title>a</title>
<im:name>b</im:name>
</entry>
<entry>
<updated>date2/updated>
<id>someID2</id>
<title>a2</title>
<im:name>b2</im:name>
</entry>
</feed>
내가 <xsl:apply-templates match="entry"/>
를하려고하면이 파일의 전체 내용을 뱉는 다. <xsl:call-template name="entry">
을 사용하면 하나의 항목 만 표시되며 이름을 얻으려면 <xsl:value-of select="//*[local-name(.)='name']"/>
을 사용해야하지만 해킹입니다. xslt를 xml에 사용하기 전에 네임 스페이스가없고 xml에는 적절한 부모 자식 관계가 있지만이 RSS 피드는 없습니다. 통지 항목은 항목 또는 아무것도 래핑되지 않습니다.
도움을 주시면 감사하겠습니다. 내 제휴 계정을 통해 이동하는 iTunes 링크를 변경하려면 xslt를 사용하고 싶습니다 - 그래서 자동화 된 무언가가 나를 위해 작동하지 않을 것입니다.
좋은 질문 (+1). 심지어 중급 XSLT 프로그래머도이 문제에 직면합니다. 문제를 설명하는 나의 대답과 그것을 해결하는 방법이 있습니다. :) –
@jd : 그런 다음 XSLT 명령을 다음과 같이 바꿉니다. ' 'elementName'에서'atom : elementName'까지 비슷한 다른 모든 요소 이름들 –