안녕하세요 work around a 'bug' in certain RSS-feeds에 mediaRSS 모듈에 대해 잘못된 네임 스페이스를 사용하고 싶습니다. 프로그래밍 방식으로 DOM을 조작하여이 작업을 시도했지만 XSLT를 사용하면 더욱 유연 해 보입니다.네임 스페이스를 XSLT로 바꾸기
예 :
<media:thumbnail xmlns:media="http://search.yahoo.com/mrss" url="http://www.suedkurier.de/storage/pic/dpa/infoline/brennpunkte/4311018_0_merkelxI_24280028_original.large-4-3-800-199-0-3131-2202.jpg" />
<media:thumbnail url="http://www.suedkurier.de/storage/pic/dpa/infoline/brennpunkte/4311018_0_merkelxI_24280028_original.large-4-3-800-199-0-3131-2202.jpg" />
네임 스페이스 http://search.yahoo.com/mrss/
(슬래시 마음을)해야합니다 경우.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="//*[namespace-uri()='http://search.yahoo.com/mrss']">
<xsl:element name="{local-name()}" namespace="http://search.yahoo.com/mrss/" >
<xsl:apply-templates select="@*|*|text()" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>
불행하게도 변환의 결과가 유효하지 않은 XML과 나의 RSS 파서 (ROME Library가) 더 이상 피드를 구문 분석하지 않습니다 :
java.lang.IllegalStateException: Root element not set
at org.jdom.Document.getRootElement(Document.java:218)
at com.sun.syndication.io.impl.RSS090Parser.isMyType(RSS090Parser.java:58)
at com.sun.syndication.io.impl.FeedParsers.getParserFor(FeedParsers.java:72)
at com.sun.syndication.io.WireFeedInput.build(WireFeedInput.java:273)
at com.sun.syndication.io.WireFeedInput.build(WireFeedInput.java:251)
... 8 more
은 무엇입니까
이
내 스타일이다 내 스타일 시트에 문제가 있니?
확인. 나는 확실히 XSL/XPATH에 더 많은 시간을 투자 할 필요가있다! – er4z0r