2012-07-12 108 views
0

我有兩個XHTML文件,我的任務是使用XSLT(或Java程序的任何其他方法)從一個XHTML轉換爲另一個XHTML文件。我搜索了但我沒有得到任何例子,所有這些都與XSLT或其他XHMTL的一點信息轉換爲另一種XML有關。所以任何人都可以用一個包含源文件,期望文件和XSLT文件的例子來解釋這個過程,通過使用我的XHTML文件或其他任何文件。我會非常感謝。XHTML到XSLT的另一個XHTML

源文件[1] -

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
<title>eXe</title> 
<style type="text/css"> 
@import url(base.css); 
@import url(content.css); 
</style> 
<script type="text/javascript" src="common.js"></script> 
</head> 
<body> 
<div id="outer"> 
<div id="main"> 
<div id="nodeDecoration"> 
<p id="nodeTitle"> 
Part 1</p> 
</div> 
<div class="TrueFalseIdevice" id="id12"> 
<script type="text/javascript" src="common.js"></script> 
<!--THIS JAVASCRIPT HAS TO BE ELIMINATED--> 
<script type="text/javascript" src="libot_drag.js"></script> 
<div class="iDevice emphasis1"> 
<img alt="" class="iDevice_icon" src="icon_question.gif" /> 
<span class="iDeviceTitle">True-False Question</span><br/> 
<div class="iDevice_inner"> 
<div id="ta12_16" class="block" style="display:block"> 

</div><div class="question"> 
<br/><br/><div id="taquestion0b12" class="block" style="display:block">1><span style="color: #000000; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: #ffffff; display: inline ! important; float: none"> SQL Stands for Structure Query Language?</span> 

<!--THIS ONCLICK EVENT HAS TO BE REMOVED--> 
</div><br/>True <input type="radio" name="option0b12" id="true0b12" onclick="getFeedback(0,2,'0b12','truefalse')"/> 
False <input type="radio" name="option0b12" id="false0b12" onclick="getFeedback(1,2,'0b12','truefalse')"/> 
<div id="s0b0b12" style="color: rgb(0, 51, 204);display: none;" even_steven="18">Correct! </div> 
<div id="s1b0b12" style="color: rgb(0, 51, 204);display: none;" even_steven="19">Incorrect! </div> 
<div id="sfbk0b12" style="color: rgb(0, 51, 204);display: none;"><div id="tafeedback0b12" class="block" style="display:block"> 

</div></div> 
</div> 
</div> 
</div> 
</body></html> 

所需的文件[1]:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>eXe</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<!-- Created using eXe: http://exelearning.org --> 
<style type="text/css"> 
@import url(base.css); 
@import url(content.css); 
</style> 
<script type="text/javascript" src="common.js"></script> 
</head> 
<!--THESE TWO JAVASCRIPT HAVE TO BE INCLUDED--> 
<script type="text/javascript" src="APIWrapper.js"></script> 
<script type="text/javascript" src="SCOFunctions.js"></script> 
<body onload="loadPage()" onunload="unloadPage()"><div id="outer"> 
<div id="main"> 
<div id="nodeDecoration"> 
<p id="nodeTitle"> 
Part 1</p></div> 
<div class="QuizTestIdevice" id="id8"> 
<!--THIS JAVASCRIPT AND FORM HAVE TO BE INCLUDED--> 
<script type="text/javascript" src="calculate.js"></script> 
<form name="quizForm8" id="quizForm8" action="javascript:calcScore2();"> 
<div class="iDevice emphasis1"> 
<img alt="" class="iDevice_icon" src="icon_question.gif" /> 
<span class="iDeviceTitle">SCORM Quiz</span> 
<div class="iDevice_inner"> 
<div class="passrate" value="50"></div> 
<div class="question"> 
<div id="taquestion0b8" class="block" style="display:block">1> SQL Stands for Structure Query Language? 

</div><br/> 
<table><tr><td><input type="radio" name="key0b8" value="0" /> 
</td><td> 
<div id="taoptionAnswer0q0b8" class="block" style="display:block">True 

</div></td></tr> 
<tr><td><input type="radio" name="key0b8" value="1" /> 
</td><td> 
<div id="taoptionAnswer1q0b8" class="block" style="display:block">False 

</div></td></tr> 
</table></div> 
<!--THIS SUBMIT BUTTON HAS TO BE INCLUDED--> 
<br/><input type="submit" name="submitB" value="SUBMIT ANSWERS"/> 
</div></div> 
</form> 
</div> 
</div> 
</div> 
</body></html> 

完整的源文件[2] -

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
<title>eXe</title> 
<style type="text/css"> 
@import url(base.css); 
@import url(content.css); 
</style> 
<script type="text/javascript" src="common.js"></script> 
</head> 
<body> 
<div id="outer"> 
<div id="main"> 
<div id="nodeDecoration"> 
<p id="nodeTitle"> 
Part 2</p> 
</div> 
<div class="TrueFalseIdevice" id="id13"> 

<script type="text/javascript" src="common.js"></script> 
<script type="text/javascript" src="libot_drag.js"></script> 

<div class="iDevice emphasis1"> 
<img alt="" class="iDevice_icon" src="icon_question.gif" /> 
<span class="iDeviceTitle">True-False Question</span><br/> 
<div class="iDevice_inner"> 
<div id="ta13_16" class="block" style="display:block"> 
</div> 

<div class="question"> 
<br/><br/><div id="taquestion0b13" class="block" style="display:block">1: Can a table have more than one primary key? 

</div><br/>True <input type="radio" name="option0b13" id="true0b13" onclick="getFeedback(0,2,'0b13','truefalse')"/> 
False <input type="radio" name="option0b13" id="false0b13" onclick="getFeedback(1,2,'0b13','truefalse')"/> 
<div id="s0b0b13" style="color: rgb(0, 51, 204);display: none;" even_steven="18">Correct! </div> 
<div id="s1b0b13" style="color: rgb(0, 51, 204);display: none;" even_steven="19">Incorrect! </div> 
<div id="sfbk0b13" style="color: rgb(0, 51, 204);display: none;"><div id="tafeedback0b13" class="block" style="display:block"> 
</div></div></div> 

<div class="question"> 

<br/><br/><div id="taquestion1b13" class="block" style="display:block"><span style="color: #000000; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: #ffffff; display: inline ! important; float: none">2: A row in a database can also be called a domain.</span> 

</div><br/>True <input type="radio" name="option1b13" id="true1b13" onclick="getFeedback(0,2,'1b13','truefalse')"/> 

False <input type="radio" name="option1b13" id="false1b13" onclick="getFeedback(1,2,'1b13','truefalse')"/> 

<div id="s0b1b13" style="color: rgb(0, 51, 204);display: none;" even_steven="19">Incorrect! </div> 
<div id="s1b1b13" style="color: rgb(0, 51, 204);display: none;" even_steven="18">Correct! </div> 
<div id="sfbk1b13" style="color: rgb(0, 51, 204);display: none;"><div id="tafeedback1b13" class="block" style="display:block"> 
</div></div> 
</div> 

<div class="question"> 

<br/><br/><div id="taquestion2b13" class="block" style="display:block"><span style="color: #000000; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: #ffffff; display: inline ! important; float: none">3: In an OO database objects may inherit some or all of the characteristics of other objects.</span> 

</div><br/>True <input type="radio" name="option2b13" id="true2b13" onclick="getFeedback(0,2,'2b13','truefalse')"/> 
False <input type="radio" name="option2b13" id="false2b13" onclick="getFeedback(1,2,'2b13','truefalse')"/> 
<div id="s0b2b13" style="color: rgb(0, 51, 204);display: none;" even_steven="18">Correct! </div> 
<div id="s1b2b13" style="color: rgb(0, 51, 204);display: none;" even_steven="19">Incorrect!</div> 
<div id="sfbk2b13" style="color: rgb(0, 51, 204);display: none;"><div id="tafeedback2b13" class="block" style="display:block"> 
</div></div> 
</div> 

<div class="question"> 

<br/><br/><div id="taquestion3b13" class="block" style="display:block"><span style="color: #000000; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: #ffffff; display: inline ! important; float: none">4: In entity attribute modelling a many to many relationship is represented by M:M.</span> 

</div><br/>True <input type="radio" name="option3b13" id="true3b13" onclick="getFeedback(0,2,'3b13','truefalse')"/> 

False <input type="radio" name="option3b13" id="false3b13" onclick="getFeedback(1,2,'3b13','truefalse')"/> 

<div id="s0b3b13" style="color: rgb(0, 51, 204);display: none;" even_steven="19">Incorrect! </div> 
<div id="s1b3b13" style="color: rgb(0, 51, 204);display: none;" even_steven="18">Correct! </div> 
<div id="sfbk3b13" style="color: rgb(0, 51, 204);display: none;"><div id="tafeedback3b13" class="block" style="display:block"> 

</div></div></div></div></div></div></div></div> 
</body></html> 

我XSLT-

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
     <!-- Import the identity transformation. --> 
     <xsl:import href="identity.xsl"/> 

     <xsl:template match="@onclick"> 

     </xsl:template> 
     <xsl:template match="@style"/> 

     <xsl:template match="input"> 
     <xsl:element name="input"> 
      <xsl:attribute name="type">submit</xsl:attribute> 
      <xsl:attribute name="name">submitB</xsl:attribute> 
      <xsl:attribute name="value">Submit</xsl:attribute> 
      <xsl:apply-templates /> 
     </xsl:element> 
     </xsl:template> 

    </xsl:stylesheet> 

COMPLETE所需的文件[2] - 您閱讀有關使用XSLT適用於轉化XHTML轉換XML,XHTML,因爲XML是

<?xml version="1.0" encoding="UTF-8"?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>eXe</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<style type="text/css"> 
@import url(base.css); 
@import url(content.css); 
</style> 
<script type="text/javascript" src="common.js"></script> 
</head> 

<script type="text/javascript" src="APIWrapper.js"></script> 
<script type="text/javascript" src="SCOFunctions.js"></script> 

<body onload="loadPage()" onunload="unloadPage()"><div id="outer"> 
<div id="main"> 

<div id="nodeDecoration"> 
<p id="nodeTitle"> 
Part 2</p></div> 
<div class="QuizTestIdevice" id="id10"> 

<script type="text/javascript" src="calculate.js"></script> 

<form name="quizForm10" id="quizForm10" action="javascript:calcScore2();"> 
<div class="iDevice emphasis1"> 
<img alt="" class="iDevice_icon" src="icon_question.gif" /> 
<span class="iDeviceTitle">SCORM Quiz</span> 
<div class="iDevice_inner"> 
<div class="passrate" value="50"></div> 

<div class="question"> 
<div id="taquestion0b10" class="block" style="display:block">1: Can a table have more than one primary key? 
</div><br/> 

<table><tr><td><input type="radio" name="key0b10" value="0" /> 
</td><td> 
<div id="taoptionAnswer0q0b10" class="block" style="display:block">True 
</div></td></tr> 
<tr><td><input type="radio" name="key0b10" value="1" /> 
</td><td> 
<div id="taoptionAnswer1q0b10" class="block" style="display:block">False 
</div></td></tr> 
</table></div> 

<br/><div class="question"> 
<div id="taquestion1b10" class="block" style="display:block"><span class="Ques">2: A row in a database can also be called a domain. 
</span> 
</div><br/> 
<table><tr><td><input type="radio" name="key1b10" value="0" /> 
</td><td> 
<div id="taoptionAnswer0q1b10" class="block" style="display:block">True 
</div></td></tr> 
<tr><td><input type="radio" name="key1b10" value="1" /> 
</td><td> 
<div id="taoptionAnswer1q1b10" class="block" style="display:block">False 
</div></td></tr> 
</table></div> 

<br/><div class="question"> 
<div id="taquestion2b10" class="block" style="display:block"><span class="Ques">3: In an OO database objects may inherit some or all of the characteristics of other objects. 
</span> 
</div><br/> 
<table><tr><td><input type="radio" name="key2b10" value="0" /> 
</td><td> 
<div id="taoptionAnswer0q2b10" class="block" style="display:block">True 
</div></td></tr> 
<tr><td><input type="radio" name="key2b10" value="1" /> 
</td><td> 
<div id="taoptionAnswer1q2b10" class="block" style="display:block">False 
</div></td></tr> 
</table></div> 

<br/><div class="question"> 
<div id="taquestion3b10" class="block" style="display:block"><span class="Ques">4: In entity attribute modelling a many to many relationship is represented by M:M.</span> 
</div><br/> 
<table><tr><td><input type="radio" name="key3b10" value="0" /> 
</td><td> 
<div id="taoptionAnswer0q3b10" class="block" style="display:block">True 
</div></td></tr> 
<tr><td><input type="radio" name="key3b10" value="1" /> 
</td><td> 
<div id="taoptionAnswer1q3b10" class="block" style="display:block">False 
</div></td></tr> 
</table></div> 

<br/><input type="submit" name="submitB" value="SUBMIT ANSWERS"/> 
</div></div> 
</form> 
</div></div></div> 
</body></html> 
+1

'所有人都爲一個XML轉換到另一個XSLT' XHTML相關的** **是XML,所以你看到的是適用於您的問題的任何實例。 – 2012-07-12 19:22:04

+0

@StephenP感謝您的幫助。我現在只使用XSLT。 – RahulD 2012-07-13 10:05:04

回答

1

一切。除了研究解決方案的普遍性之外,很難看出問題的難點:這是唯一需要轉換的文檔(如果是這樣,爲什麼不使用文本編輯器?)還是其他人相似,如果有的話,它們有多少不同?

編寫一個複製大多數東西但刪除一些東西的轉換的一般方法是編寫兩個模板規則:複製要複製的東西的一般標識模板以及與所需東西相匹配的特殊規則刪除。

看到這裏變化的主題:

http://www.dpawson.co.uk/xsl/sect2/identity.html

+0

非常感謝您的幫助。我正在瀏覽您提供的鏈接。實際上,這不是唯一需要改變的文件,而是有很多,但它們都具有相似的結構,只有測驗問題有所不同。我可以使用文本編輯器,但我的任務是自動完成,所以我通過Java程序和XSLT來完成。 – RahulD 2012-07-13 10:00:56

+0

這些文件包含一些測驗問題,因此在示例代碼中,我只包含一個問題,而可以有很多問題。源代碼和期望的HTML文件之間的第一個區別是'Javascripts'。我已經將這些Javascripts從B包複製到A,這些不在那裏,現在這3個Javascript應該包含在所需的HTML文件中,並且必須從源文件中排除一個JavaScript。這對所有的HTML文件都是正確的,並且不會受到測驗中問題數量的影響。 – RahulD 2012-07-13 10:03:12

+0

第二個區別是所需的HTML Body標籤應該像,而在源代碼中則類似於。 第三個不同之處在於,在源文件中沒有存在Form標籤

(操作事件很重要) 。 第四個是,這裏我需要消除這個onclick事件。 – RahulD 2012-07-13 10:03:32