Из следующего файла:-преобразование XSLT для извлечения реф-данных не извлекает почти ничего
<!--?xml version="1.0" encoding="UTF-8"?-->
<html>
<head>
<title>ERKLAERUNG</title>
</head>
<body>
<h1>Erklärung</h1>
<p>Ich kenne einen Herrn <span class="vcard"> <span class="fn">Henry
Riedel</span> (<i class="nick">hrick</i>) , der in einer <span
class="org">Hauschuhfirma</span> arbeitet. Seine Telefonnummer (<span
class="tel"> <i class="type">home</i>) ist: <span
class="value">+4.444.444.4442</span> </span> </span> Er ist mir als sehr
zuverlässiger Kollege in Erinnerung. Seine Aufgaben hat er stets
pflichtgemäß
erfüllt. Er war stets hilfsbereit und hat seine Kollegen nach besten
Kräften
unterstützt.
</p>
<p>Außerdem ist mir ein Herr <span class="vcard"> <span class="fn">Peter
Liebig</span> (<i class="nick">pitty</i>) bekannt, der an der <a
class="org" href="http://www.tu-chemnitz.de">TU Chemnitz</a> arbeitet.
Seine Telefonnummer (<span class="tel"> <i class="type">home</i>) ist:
<span class="value">+7.777.777.7777.</span> </span> </span> Auch er hat
stets seine Pflicht erüllt, obwohl er manchmal zu spät zur Arbeit kam. Er
hst sich bemüht, diese Ausfallzeiten nachzuarbeiten. </p>
<p>Ich kennen aber keinen Herrn <span class="vcard"> <span class="fn">Ralph
Schneider</span>. (<i class="nick">Ralphy</i>) Ich habe lediglich über
Dritte erfahren, dass er bei <a class="org"
href="http://www.google.de">Google</a> beschäftigt sein soll. </span> Ich
muss energisch bestreiten, diesen Mitarbeiter zu kennen. Ich habe zwar über
ihn reden hören, aber ich habe in nie getroffen und auch sonst keinen
Kontakt zu ihm gehabt.</p>
<p>Auch Herrn <span class="vcard"> <span class="fn">Reiner Kuster</span>
kenne ich nur flüchtig. </span> </p>
</body>
</html>
Я хочу, чтобы извлечь определенные данные и сохранять их как РФР. С этой целью я написал следующий XSLT-код:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:vc="http://example.org/vcard#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:h="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="xs"
version="2.0">
<xsl:template match="/">
<rdf:RDF xmlns:vc="http://example.org/vcard#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:h="http://www.w3.org/1999/xhtml">
<xsl:apply-templates select="*[@class='vcard']"/>
</rdf:RDF>
</xsl:template>
<xsl:template match="*[@class='vcard']">
<rdf:Description>
<xsl:attribute name="rdf:about">
<xsl:value-of select="concat('vc:vcard_id', position() - 1)"/>
</xsl:attribute>
<xsl:if test=".//*[@class='fn']">
<vc:hasName>
<xsl:value-of select=".//*[@class='fn']"/>
</vc:hasName>
</xsl:if>
<xsl:if test=".//*[@class='nick']">
<vc:hasNickName>
<xsl:value-of select=".//*[@class='nick']"/>
</vc:hasNickName>
</xsl:if>
<xsl:if test=".//*[@class='tel']/*[@class='value']">
<vc:phone>
<xsl:value-of select=".//*[@class='tel']/*[@class='value']"/>
</vc:phone>
</xsl:if>
</rdf:Description>
</xsl:template>
Но вместо того, чтобы давать мне желаемый результат, который будет выглядеть следующим образом:
<rdf:RDF xmlns:vc="http://example.org/vcard#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:h="http://www.w3.org/1999/xhtml">
<rdf:Description rdf:about="vc:vcard_id0">
<vc:hasName>Henry Riedel</vc:hasName>
<vc:hasNickName>hrick</vc:hasNickName>
<vc:phone>+4.444.444.4442</vc:phone>
</rdf:Description>
<rdf:Description rdf:about="vc:vcard_id1">
<vc:hasName>Peter Liebig</vc:hasName>
<vc:hasNickName>pitty</vc:hasNickName>
<vc:phone>+7.777.777.7777.</vc:phone>
</rdf:Description>
<rdf:Description rdf:about="vc:vcard_id2">
<vc:hasName>Ralph Schneider</vc:hasName>
<vc:hasNickName>Ralphy</vc:hasNickName>
</rdf:Description>
<rdf:Description rdf:about="vc:vcard_id3">
<vc:hasName>Reiner Kuster</vc:hasName>
</rdf:Description>
</rdf:RDF>
... работает в XSLT -трансформация дает мне только следующие данные:
<?xml version="1.0" encoding="UTF-8"?><rdf:RDF
xmlns:vc="http://example.org/vcard#" xmlns:rdf="http://www.w3.org/1999/02/22-
rdf-syntax-ns#" xmlns:h="http://www.w3.org/1999/xhtml"/>
До сих пор я использовал xslt exclusi vely для преобразования xml в html. Поэтому я предполагаю, что моя ошибка имеет какое-то отношение к rdf-аспекту этой задачи.
Когда я впервые попробовал запустить преобразование XSLT, я получил следующее сообщение об ошибке:
The prefix "rdf" for element "rdf:Description" is not bound.
Я тогда включал определение пространства имен целевого РДФА-файл (т.е. РДФ-файл, который будет создан преобразование), и сообщение об ошибке исчезло. Однако выход преобразования практически не содержит данных. Я не знаю, что я делаю неправильно. Если кто-нибудь знает, я был бы благодарен за ответ.
Большое спасибо! Это решило. – Tommy