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

问题描述 投票:0回答:1

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

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>

如何修改样式表以实现我的期望?

xslt linguistics
1个回答
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>
© www.soinside.com 2019 - 2024. All rights reserved.