如何使用XSLT提取HTML网站的多个元素?

时间:2019-02-26 15:24:46

标签: xslt linguistics

我想从XHTML站点中提取多个元素。我设法识别并标记了一个元素,但很快就会有两个秒在输出中不可见。

XHTML站点示例

<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="de" id=
"vbulletin_html">
<head>
<meta name="generator" content=
"HTML Tidy for HTML5 for Apple macOS version 5.6.0" />
<base href="http://forum.pcgames.de/" />
<!--[if IE]></base><![endif]-->
<link rel="canonical" href=
"http://forum.pcgames.de/videospiele-allgemein/9326273-erfahrungsaustausch-spoileralarm-hilfe-ich-weiss-nicht-weiter.html" />
<meta http-equiv="Content-Type" content=
"text/html; charset=utf-8" />
<meta id="e_vb_meta_bburl" name="vb_meta_bburl" content=
"http://forum.pcgames.de" />
<meta name="generator" content="vBulletin 4.2.2" />
<meta name="theme-color" content="#333333" />
<meta name="msapplication-navbutton-color" content="#333333" />
<meta name="apple-mobile-web-app-status-bar-style" content=
"#333333" />
<meta http-equiv="X-UA-Compatible" content="IE=9" />
<meta name="viewport" content=
"width=device-width,initial-scale=1.0,maximum-scale=1.0" />
<link rel="Shortcut Icon" href=
"http://forum.pcgames.de/favicon.ico" type="image/x-icon" />



<script type="text/javascript" src=
"http://www.pcgames.de/bcommon/js/jquery/jquery.finger.min.js"></script>

<title>[Erfahrungsaustausch / Spoileralarm] Hilfe - Ich weiß nicht
weiter!</title>
<link rel="canonical" href=
"http://forum.pcgames.de/videospiele-allgemein/9326273-erfahrungsaustausch-spoileralarm-hilfe-ich-weiss-nicht-weiter.html" />

<script type="text/javascript" src=
"http://forum.pcgames.de/clientscript/vbulletin_ajax_threadrate.js?v=422"></script>
<link rel="stylesheet" type="text/css" href=
"http://forum.pcgames.de/css.php?styleid=11&amp;langid=2&amp;d=1535117522&amp;td=ltr&amp;sheet=toolsmenu.css,postlist.css,showthread.css,postbit.css,options.css,attachment.css,poll.css,lightbox.css" />
<link href=
'http://fonts.googleapis.com/css?family=Open+Sans+Condensed:300,700'
rel='stylesheet' type='text/css' />
<link rel="stylesheet" type="text/css" href=
"http://forum.pcgames.de/css.php?styleid=11&amp;langid=2&amp;d=1535117522&amp;td=ltr&amp;sheet=additional.css" />

<script type="text/javascript" src=
"http://forum.pcgames.de/themecrate/debutant/clientscript/core.js?v=20171017"></script>
</head>
<body>


<div id="content-container">
<div id="main-content" class="clearfix">
<div class="menu">
<div class="wrapper"><a href="http://www.pcgames.de/" class="logo"
alt="PC Games" title="zur Startseite"></a> <a href=
"javascript:void(0)" class="menu_button"></a>
<ul id="navtabs" class="navtabs floatcontainer">
<li class="selected subMenu" id="vbtab_forum"><a class=
"mainMenu navtab dropdown" href=
"http://forum.pcgames.de/forum.php">Forum</a>
<ul class="floatcontainer">
<li id="vbflink_newposts" class="subItemA"><a href=
"http://forum.pcgames.de/search.php?do=getdaily&amp;exclude=3476,3512,3519,3544,3545,3531,3524,3525,3534,3528,3535,3533,3549">
Die letzten 100 Beiträge</a></li>
<li id="vbflink_faq" class="subItemA"><a href=
"http://forum.pcgames.de/faq.php">Hilfe</a></li>
<li id="vbflink_calendar" class="subItemA"><a href=
"http://forum.pcgames.de/calendar.php">Kalender</a></li>
<li class="popupmenu subMenu"><a href=
"http://forum.pcgames.de/videospiele-allgemein/9326273-erfahrungsaustausch-spoileralarm-hilfe-ich-weiss-nicht-weiter.html#"
onclick="return false;">Community</a>
<ul>
<li id="vbclink_groups" class="subItemA"><a href=
"http://forum.pcgames.de/groups/">Gruppen</a></li>
<li id="vbclink_albums" class="subItemA"><a href=
"http://forum.pcgames.de/members/albums.html">Bilder &amp;
Alben</a></li>
<li id="vbclink_members" class="subItemA"><a href=
"http://forum.pcgames.de/members/list/">Benutzerliste</a></li>
</ul>
</li>
<li class="popupmenu subMenu"><a href=
"http://forum.pcgames.de/videospiele-allgemein/9326273-erfahrungsaustausch-spoileralarm-hilfe-ich-weiss-nicht-weiter.html#"
onclick="return false;">Aktionen</a>
<ul>
<li id="vbalink_mfr" class="subItemA"><a rel="nofollow" href=
"http://forum.pcgames.de/forumdisplay.php?do=markread&amp;markreadhash=guest">
Alle Foren als gelesen markieren</a></li>
</ul>
</li>
<li class="popupmenu subMenu"><a href=
"http://forum.pcgames.de/videospiele-allgemein/9326273-erfahrungsaustausch-spoileralarm-hilfe-ich-weiss-nicht-weiter.html#"
onclick="return false;">Nützliche Links</a>
<ul>
<li id="vbqlink_posts" class="subItemA"><a href=
"http://forum.pcgames.de/search.php?do=getdaily&amp;days=7">Diskussionen
der letzten 7 Tage</a></li>
<li id="link_mtg3_542" class="subItemA"><a rel="nofollow" href=
"http://forum.pcgames.de/search.php?do=finduser&amp;userid=0&amp;starteronly=1&amp;contenttype=vBForum_Post">
Meine Themen</a></li>
<li id="link_mtg3_639" class="subItemA"><a rel="nofollow" href=
"http://forum.pcgames.de/search.php?do=finduser&amp;userid=0&amp;contenttype=vBForum_Post&amp;showposts=1">
Meine Beiträge</a></li>
<li id="link_mtg3_831" class="subItemA"><a rel="nofollow" href=
"http://forum.pcgames.de/search.php?do=finduser&amp;userid=0&amp;starteronly=0&amp;contenttype=vBForum_Post">
Themen mit eigenen Beiträgen</a></li>
<li id="vbqlink_leaders" class="subItemA"><a href=
"http://forum.pcgames.de/showgroups.php">Forum-Mitarbeiter
anzeigen</a></li>
<li id="vbqlink_online" class="subItemA"><a href=
"http://forum.pcgames.de/online.php">Wer ist online</a></li>
<li id="link_ndgx_744" class="subItemA"><a href="/chat/">Chat
(IRC)</a></li>
</ul>
</li>
</ul>
</li>
<li class="subMenu" id="vbtab_blog"><a class=
"mainMenu navtab dropdown" href=
"http://forum.pcgames.de/blogs/">Blogs</a>
<ul class="floatcontainer">
<li id="vbblog_recent" class="subItemA"><a href=
"http://forum.pcgames.de/blogs/recent-entries/">Neue
Blog-Einträge</a></li>
<li id="vbblog_popular" class="subItemA"><a href=
"http://forum.pcgames.de/blogs/best-entries/">Top Einträge</a></li>
<li id="vbblog_member" class="subItemA"><a href=
"http://forum.pcgames.de/blogs/all/">Blogliste</a></li>
</ul>
</li>
<li class="subMenu" id="vbtab_whatsnew"><a rel="nofollow" class=
"mainMenu navtab dropdown" href=
"http://forum.pcgames.de/search.php?do=getnew&amp;contenttype=vBForum_Post&amp;exclude=3476,3512,3519,3544,3545,3531,3524,3525,3534,3528,3535,3533,3549">
Was ist neu?</a>
<ul class="floatcontainer">
<li id="vbnew_activitystream" class="subItemA"><a href=
"http://forum.pcgames.de/activity.php">Aktivitäten</a></li>
<li id="vbnew_newposts" class="subItemA"><a rel="nofollow" href=
"http://forum.pcgames.de/search.php?do=getnew&amp;contenttype=vBForum_Post">
Neue Beiträge</a></li>
<li id="vbnew_groupm" class="subItemA"><a rel="nofollow" href=
"http://forum.pcgames.de/search.php?do=getnew&amp;contenttype=vBForum_SocialGroupMessage">
Neue Diskussionen</a></li>
<li id="vbnew_events" class="subItemA"><a rel="nofollow" href=
"http://forum.pcgames.de/search.php?do=getnew&amp;contenttype=vBForum_Event">
Neue Termine</a></li>
<li id="vbnew_entries" class="subItemA"><a rel="nofollow" href=
"http://forum.pcgames.de/search.php?do=getnew&amp;contenttype=vBBlog_BlogEntry">
Neue Blog-Einträge</a></li>
<li id="vbnew_mfr" class="subItemA"><a rel="nofollow" href=
"http://forum.pcgames.de/forumdisplay.php?do=markread&amp;markreadhash=guest">
Alle Foren als gelesen markieren</a></li>
</ul>
</li>
<li class="subMenu" id="vbtab_activity"><a class="mainMenu navtab"
href="http://forum.pcgames.de/activity.php">Aktivitäten</a></li>

</ul>
<a target="_blank" alt="www.gamesworld.de" title=
"zur Gamesworld-Startseite" href="http://www.gamesworld.de" class=
"logo partner" rel="nofollow"></a>
<ul class="usermenu guest">
<li><a class="loginbtn" name="login-dialog" href=
"http://forum.pcgames.de/videospiele-allgemein/9326273-erfahrungsaustausch-spoileralarm-hilfe-ich-weiss-nicht-weiter.html#login-dialog">
Anmelden</a></li>
<li><a class="registerbtn" href=
"http://forum.pcgames.de/register.php">Registrieren</a></li>
</ul>
<div class="clear"></div>
</div>
</div>
<div class="wrapper">
<div class="above_body">
<div id="header" class="floatcontainer doc_header">
<div class="bannerFrame">
<div class="adikett" id="6517819" data-type-id="banner"></div>
</div>
<div class="ad_global_header"></div>
<hr /></div>
</div>
<div class="body_wrapper loggedout">
<div class="skyFrame">
<div class="adikett" id="6517818" data-type-id="sky"></div>
</div>
<div id="breadcrumb" class="breadcrumb">
<ul class="floatcontainer">
<li class="navbithome"><a href="http://forum.pcgames.de/"
accesskey="1"></a></li>
<li class="navbit"><a href=
"http://forum.pcgames.de/">Forum</a></li>
<li class="navbit"><a href=
"http://forum.pcgames.de/spieleforum/41">Spieleforum</a></li>
<li class="navbit"><a href=
"http://forum.pcgames.de/videospiele-allgemein/3470">Videospiele
allgemein</a></li>
<li class="navbit lastnavbit">
<h1><span><a href="javascript:location.reload();" title=
"Seite neu laden">[Erfahrungsaustausch / Spoileralarm] Hilfe - Ich
weiß nicht weiter!</a></span></h1>
</li>
</ul>
<hr /></div>

<div id="above_postlist" class="above_postlist">
<div id="pagination_top" class="pagination_top">

</div>
</div>
<div id="pagetitle" class="pagetitle">
<div id="vbseo-likes"><span class="vbseo-likes-count" onclick=
"vbseoui.tree_dropdown()"><img src=
"http://forum.pcgames.de/vbseo/resources/images/forum/vbseo_likes_heart.png"
class="vbseo-likes-count-image" alt="" />52<em>Gefällt
mir</em></span>
<div id="liketree_1.9326273" class="vbseo-likes-container">
<ul class="vbseo-likes-tabs">
<li><a href=
"http://forum.pcgames.de/videospiele-allgemein/9326273-erfahrungsaustausch-spoileralarm-hilfe-ich-weiss-nicht-weiter.html#"
onclick="return vbseoui.treetab_click(0)">Top</a></li>
<li><a href=
"http://forum.pcgames.de/videospiele-allgemein/9326273-erfahrungsaustausch-spoileralarm-hilfe-ich-weiss-nicht-weiter.html#"
onclick="return vbseoui.treetab_click(1)">Alle</a></li>
<li><a href=
"http://forum.pcgames.de/videospiele-allgemein/9326273-erfahrungsaustausch-spoileralarm-hilfe-ich-weiss-nicht-weiter.html#"
onclick="return vbseoui.treetab_click(2)">Aktuelle Seite</a></li>
</ul>
<ul class="vbseo-likes-list"></ul>
</div>
</div>
</div>
<div id="thread_controls" class="thread_controls toolsmenu">
<div>
<ul id="postlist_popups" class="postlist_popups popupgroup">
<li class="popupmenu" id="threadtools">
<h6><a class="popupctrl" href=
"javascript://">Themen-Optionen</a></h6>
<ul class="popupbody popuphover">
<li><a href=
"http://forum.pcgames.de/videospiele-allgemein/9326273-erfahrungsaustausch-spoileralarm-hilfe-ich-weiss-nicht-weiter-print.html"
accesskey="3" rel="nofollow">Druckbare Version zeigen</a></li>
<li><a href=
"http://forum.pcgames.de/sendmessage.php?do=sendtofriend&amp;t=9326273"
rel="nofollow">Thema weiterempfehlen…</a></li>
<li><a href=
"http://forum.pcgames.de/subscription.php?do=addsubscription&amp;t=9326273"
rel="nofollow">Thema abonnieren…</a></li>
</ul>
</li>
<li class="popupmenu" id="threadrating">
<h6><a class="popupctrl" href="javascript://">Thema
bewerten</a></h6>
<div class="popupbody popuphover">
<form action="http://forum.pcgames.de/threadrate.php" method="post"
id='showthread_threadrate_form'>
<ul>
</ul>
<input type="hidden" name="s" value="" /> <input type="hidden"
name="securitytoken" value="guest" /> <input type="hidden" name="t"
value="9326273" /> <input type="hidden" name="pp" value="20" />
<input type="hidden" name="page" value="1" /></form>
</div>
</li>
</ul>
</div>
</div>
<div id="postlist" class="postlist restrain">
<ol id="posts" class="posts" start="1">
<li class="postbitlegacy postbitim postcontainer old" id=
"post_9651357">
<div class="posthead"><span class="postdate old"><span class=
"date">23.10.2013,&#160;<span class=
"time">15:06</span></span></span> <span class=
"nodecontrols"><a name="post9651357" href=
"http://forum.pcgames.de/videospiele-allgemein/9326273-erfahrungsaustausch-spoileralarm-hilfe-ich-weiss-nicht-weiter.html#post9651357"
class="postcounter">#1</a><a id="postcount9651357" name=
"1"></a></span></div>
<div class="postdetails">
<div class="userinfo">
<div class="userdetails hasavatar">
<div class="username_container">
<div class="popupmenu memberaction"><a rel="nofollow" class=
"username offline" href=
"http://forum.pcgames.de/members/2905424-monalye.html" title=
"Monalye ist offline"><strong>Monalye</strong></a></div>
<img class="inlineimg onlinestatus" src=
"http://forum.pcgames.de/themecrate/debutant/statusicon/user-offline.png"
alt="Monalye ist offline" border="0" /></div>
<span class="usertitle">Erfahrener Benutzer</span></div>
<a rel="nofollow" class="postuseravatar" href=
"http://forum.pcgames.de/members/2905424-monalye.html" title=
"Monalye ist offline"><img src=
"http://forum.pcgames.de/customavatars/avatar2905424_9.gif" alt=
"Avatar von Monalye" title="Avatar von Monalye" /></a>
<hr />
<dl class="userinfo_extra">
<dd>
<div class="post_field">
<dl>
<dt>Registriert seit</dt>
<dd>29.09.2012</dd>
</dl>
</div>
<div class="post_field">
<dl>
<dt>Ort</dt>
<dd>Österreich</dd>
</dl>
</div>
<div class="post_field">
<dl>
<dt>Beiträge</dt>
<dd>2.482</dd>
</dl>
</div>
<div class="imlinks"></div>
</dd>
</dl>
<div class="clear"></div>
</div>
<div class="postbody">
<div class="postrow has_after_content">
<h2 class="title icon">[Erfahrungsaustausch / Spoileralarm] Hilfe -
Ich weiß nicht weiter!</h2>
<div class="content">
<div id="post_message_9651357">
<blockquote class="postcontent restore">Nachdem es sich nun schon
ein paar mal ergeben hat, das in den verschiedensten Topics um
Walktrough's und Hilfe gebeten wurde (sehr oft von mir <img src=
"http://forum.pcgames.de/images/smilies/default/sm_;-).gif" border=
"0" alt="" title="; )" class="inlineimg" /> ) hab ich nun
beschlossen, den Tipp von LC anzunehmen und einen entsprechenden
Thread zu eröffnen.<br />
<br />
Wann immer man bei einem Spiel nicht mehr weiter kommt, irgendetwas
nicht findet oder Tipps zu schwierigen Erfolgen oder Trophäen
braucht, kann man hier nun um Hilfe bitten.<br />
<br />
Tja um auch gleich den Anfang zu machen ergab sich grade "zufällig"
ein Problem, bei dem ich nicht weiter weiß.<br />
Ich spiele ja gerade Darksiders II, nachdem ich die 3 Lebenssteine
für die goldene Arena gesammelt habe, stehe ich nun vor einem
Bossgegner, nämlich Gnashor. Ich bin nach dieser Komplettlösung
vorgegangen<br />
<a rel="nofollow" href=
"http://www.eurogamer.de/articles/2012-08-14-darksiders-2-loesung-tipps-guide?page=24"
target="_blank">Darksiders 2 Komplettlösung - Die goldene Arena
dritter Lebenstein - Bosskampf Arena Champion Gnashor &amp;bull;
Eurogamer.de</a><br />
hab' aber bei meinem Kampf festgestellt, das sich das blöde Biest
wieder selbst hochheilt... und so bekomm' ich den nie tot <img src=
"http://forum.pcgames.de/images/smilies/default/sm_B-(.gif" border=
"0" alt="" title=":(" class="inlineimg" /><br />
Im Grunde dresche ich permanent auf ihn ein, da ich sehr gute
Verteidigungswerte und gute Ausrüstungsgegenstände habe, ertrage
ich das recht gut. Damit konnte ich ihm gleich mal ein Drittel
Leben runterklopfen, doch kaum brauch ich mal 2 - 3 Sekunden, bis
ich wieder an ihm dran bin, heilt er sich in der Zwischenzeit
wieder rauf... und davon steht einfach nirgends was<br />
Egal wie oft ich das Internet befragt habe und Lösungen zu dem Boss
gelesen habe, nirgends steht was, das der sich hoch heilt <img src=
"http://forum.pcgames.de/images/smilies/default/sm_B-(.gif" border=
"0" alt="" title=":(" class="inlineimg" /><br />
Wie habt ihr das gemacht und mache ich irgendwas falsch, das der
sich deshalb hochheilen kann?</blockquote>
</div>
</div>
</div>
<div class="after_content">
<blockquote class="postcontent lastedited">Geändert von Herbboy
(14.11.2013 um <span class="time">00:24</span> Uhr)</blockquote>
<div class="vbseo_buttons" id="lkbtn_1.9326273.9651357">
<div class="vbseo_liked"><a href=
"http://forum.pcgames.de/members/1070857-lordcrash.html">LordCrash</a>
hat "Gefällt mir" geklickt.</div>
</div>
</div>
<div class="cleardiv"></div>
</div>
</div>
<div class="postfoot">

</div>
<hr />
<ul>

</ul>
</li>
<li class="postbitlegacy postbitim postcontainer old" id=
"post_9651373">
<div class="posthead"><span class="postdate old"><span class=
"date">23.10.2013,&#160;<span class=
"time">15:37</span></span></span> <span class=
"nodecontrols"><a name="post9651373" href=
"http://forum.pcgames.de/videospiele-allgemein/9326273-erfahrungsaustausch-spoileralarm-hilfe-ich-weiss-nicht-weiter.html#post9651373"
class="postcounter">#2</a><a id="postcount9651373" name=
"2"></a></span></div>
<div class="postdetails">
<div class="userinfo">
<div class="userdetails hasavatar">
<div class="username_container">
<div class="popupmenu memberaction"><a rel="nofollow" class=
"username offline" href=
"http://forum.pcgames.de/members/1145245-hawkins.html" title=
"Hawkins ist offline"><strong>Hawkins</strong></a></div>
<img class="inlineimg onlinestatus" src=
"http://forum.pcgames.de/themecrate/debutant/statusicon/user-offline.png"
alt="Hawkins ist offline" border="0" /></div>
<span class="usertitle">Erfahrener Benutzer</span></div>
<a rel="nofollow" class="postuseravatar" href=
"http://forum.pcgames.de/members/1145245-hawkins.html" title=
"Hawkins ist offline"><img src=
"http://forum.pcgames.de/customavatars/avatar1145245_1.gif" alt=
"Avatar von Hawkins" title="Avatar von Hawkins" /></a>
<hr />
<dl class="userinfo_extra">
<dd>
<div class="post_field">
<dl>
<dt>Registriert seit</dt>
<dd>27.08.2004</dd>
</dl>
</div>
<div class="post_field">
<dl>
<dt>Beiträge</dt>
<dd>586</dd>
</dl>
</div>
<div class="imlinks"></div>
</dd>
</dl>
<div class="clear"></div>
</div>
<div class="postbody">
<div class="postrow has_after_content">
<div class="content">
<div id="post_message_9651373">
<blockquote class="postcontent restore">Das Video sollte
helfen:<br />
<br />
<a rel="nofollow" href="http://www.youtube.com/watch?v=tW47BQFzJcw"
target="_blank">Darksiders 2 - Gnashor Boss Fight -
YouTube</a><br />
<br />
<br />
Du musst ihm am Kopf packen, damit wird er auf den Boden geworfen
und die "Wurmphase" startet wieder ohne das er sich
heilt.</blockquote>
</div>
</div>
</div>
<div class="after_content">
<div class="vbseo_buttons" id="lkbtn_1.9326273.9651373">
<div class="vbseo_liked" style="display:none"></div>
</div>
</div>
<div class="cleardiv"></div>
</div>
</div>
<div class="postfoot">
<div class="textcontrols floatcontainer"><span class=
"postcontrols"><img style="display:none" id="progress_9651373" src=
"http://forum.pcgames.de/themecrate/debutant/misc/progress.gif"
alt="" /> <a id="qrwq_9651373" class="newreply" href=
"http://forum.pcgames.de/newreply.php?do=newreply&amp;p=9651373"
rel="nofollow" title="Zitieren"><img id="quoteimg_9651373" src=
"http://forum.pcgames.de/clear.gif" alt="Zitieren" />
Zitieren</a></span></div>
</div>
<hr /></li>

</ol>
<div class="separator"></div>
<div class="postlistfoot"></div>
</div>
<div id="below_postlist" class="noinlinemod below_postlist">
<div id="pagination_bottom" class="pagination_bottom">

<div class="clear"></div>

<div class="clear"></div>
</div>
</div>

<div id="thread_info" class="thread_info block">
<div id="similar_threads">
<h4 class="threadinfohead blockhead">Ähnliche Themen</h4>
<div id="similar_threads_list" class=
"thread_info_block blockbody formcontrols">
<ol class="similar_threads">
<li class="floatcontainer">
<div class="titleblock">

<div class="starter_forum">Von Graho im Forum PC-Plattform
Allgemein</div>
</div>
<div class="dateblock"><span class="shade">Antworten:</span> 2
<div class="starter_forum"><span class="shade">Letzter
Beitrag:</span> 27.07.2006, <span class="time">01:12</span></div>
</div>
</li>
<li class="floatcontainer">
<div class="titleblock">

<div class="starter_forum">Von Tammy83 im Forum Videospiele
allgemein</div>
</div>
<div class="dateblock"><span class="shade">Antworten:</span> 7
<div class="starter_forum"><span class="shade">Letzter
Beitrag:</span> 13.07.2006, <span class="time">09:59</span></div>
</div>
</li>
<li class="floatcontainer">
<div class="titleblock">

<div class="starter_forum">Von Killingthefly im Forum PC-Plattform
Allgemein</div>
</div>
<div class="dateblock"><span class="shade">Antworten:</span> 5
<div class="starter_forum"><span class="shade">Letzter
Beitrag:</span> 30.10.2004, <span class="time">18:10</span></div>
</div>
</li>
</ol>
</div>
</div>
<div class="options_block_container">
<div class="options_block">
<h4 class="collapse blockhead options_correct"><a class="collapse"
id="collapse_posting_rules" href=
"http://forum.pcgames.de/videospiele-allgemein/9326273-erfahrungsaustausch-spoileralarm-hilfe-ich-weiss-nicht-weiter.html#top">
<img src=
"http://forum.pcgames.de/themecrate/debutant/buttons/collapse_40b.png"
alt="" /></a> Berechtigungen</h4>
<div id="posting_rules" class=
"thread_info_block blockbody formcontrols floatcontainer options_correct">
<div id="forumrules" class="info_subblock">

<div class="bbcodeblock">

</div>
<p class="rules_link"><a rel="nofollow" href=
"http://forum.pcgames.de/misc.php?do=showrules" target=
"_blank">Foren-Regeln</a></p>
</div>
</div>
</div>
</div>
</div>
<div style="clear: left"></div>
</div>
</div>
</div>
</div>
<div id="footer-container">
<div id="footer" class="floatcontainer footer">
<div class="wrapper">
<form action="http://forum.pcgames.de/" method="get" id=
"footer_select" class="footer_select"></form>

</div>
</div>
<div class="below_body">
<div class="wrapper">
<div class="left">


</div>
<div class="right">
<div class="socialicons"></div>
</div>
<div class="clear"></div>
</div>
</div>
</div>

</body>
</html>

XSLT样式表

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xhtml="http://www.w3.org/1999/xhtml" version="1.0">
<xsl:output method="xml" indent="yes" encoding="UTF-8" omit-xml-declaration="no" />

    <xsl:template match="/">
        <xsl:apply-templates select="//xhtml:blockquote[@class='postcontent restore']" />
    </xsl:template>

    <xsl:template match="xhtml:blockquote">
        <content>
            <xsl:value-of select="."/>
        </content>
    </xsl:template>

    <xsl:template match="xhtml:span[@class='nodecontrols']/xhtml:a">
        <url>
            <xsl:value-of select="@href"/>
        </url>
</xsl:template>

</xsl:stylesheet>

上面的样式表指向

<content> content1 </content>
<content> content2 </content>
...

预期输出应为

<content> content1 </content>
<url> url1 </content>
<content> content2 </content>
<url> url2 </content>

如何修改样式表以达到预期效果?

1 个答案:

答案 0 :(得分:0)

要匹配的模板,首先必须选择与xsl:apply-templates匹配的模板(或依靠XSLT的内置模板)。但是,在与/匹配的初始模板中,您仅选择blockquote元素,而不再选择xsl:apply-templates。结果,“ nodecontrols”的模板将永远不会匹配,因为没有任何东西会尝试选择那些元素。

您可以在主模板中执行此操作...

 <xsl:apply-templates select="//xhtml:span[@class='nodecontrols']/xhtml:a|//xhtml:blockquote[@class='postcontent restore']" />

但这不会给您想要的结果,因为这会按文档顺序选择节点,并且“ nodecontrols”位于blockquote之前。

从XHTML结构看,两个不同的元素都在同一个li元素下。因此,在与blockquote匹配的模板中,您需要选择链接,如下所示:

<xsl:apply-templates select="ancestor::xhtml:li[1]//xhtml:span[@class='nodecontrols']/xhtml:a[1]" />

(我在这里使用a[1],因为看起来跨度下面有两个a元素)。

尝试使用此XSLT

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xhtml="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="xhtml">
    <xsl:output method="xml" indent="yes" encoding="UTF-8" omit-xml-declaration="no" />

    <xsl:template match="/">
        <xsl:apply-templates select="//xhtml:blockquote[@class='postcontent restore']" />
    </xsl:template>

    <xsl:template match="xhtml:blockquote">
        <content>
            <xsl:value-of select="."/>
        </content>
        <xsl:apply-templates select="ancestor::xhtml:li[1]//xhtml:span[@class='nodecontrols']/xhtml:a[1]" />
    </xsl:template>

    <xsl:template match="xhtml:a">
        <url>
            <xsl:value-of select="@href"/>
        </url>
    </xsl:template>
</xsl:stylesheet>