以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 XSL/XSLT/XSL-FO/CSS 』 (http://bbs.xml.org.cn/list.asp?boardid=8) ---- 请教:初次接触XSL,照猫画虎做了一个,总是出错,不知问题出在哪里? (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=65524) |
-- 作者:xml-linguist -- 发布时间:8/7/2008 10:50:00 AM -- 请教:初次接触XSL,照猫画虎做了一个,总是出错,不知问题出在哪里? 首先看看xml文件: <choices> 其中,mappingSerialNo元素的DTD声明是混合型的,即包含数据有包含元素<mark>。 下面是我学作的xsl: <?xml version="1.0" encoding="GB2312"?> <xsl:template match="mappingSerialNo"> </xsl:stylesheet> 01. A.wentB.beenC.doneD.gone 只有第一行显示正确,以后的各行都缺少数据。怎么办? |
-- 作者:xml-linguist -- 发布时间:8/7/2008 10:52:00 AM -- 恳请各位帮忙! |
-- 作者:xml-linguist -- 发布时间:8/7/2008 10:57:00 AM -- 我在不断的修改中。如果正确了,我会把正确的格式给大家看看。从错误中学习,学了永远不会忘记。 |
-- 作者:xml-linguist -- 发布时间:8/7/2008 11:03:00 AM -- 修改xsl: <?xml version="1.0" encoding="GB2312"?> <xsl:template match="mappingSerialNo"> </xsl:stylesheet> ========================= 1. <xsl:template match="mappingSerialNo"> |
-- 作者:xml-linguist -- 发布时间:8/7/2008 11:06:00 AM -- 显示结果:(改进了很多,但是还是不完全正确) 01. A.wentB.beenC.doneD.gone 01. A.wentB.beenC.doneD.gone A. 02. A.myB.mineC.ID.ours A. 03. A.beenB.been goingC.goneD.went A. 04. A.had talked toB.had seenC.had been withD.had visited A. 05. A.famousB.forgottenC.strangeD.unknown A. 06. A.heB.himC.themD.their A. 07. A.factB.the concertC.musicD.the gifts A. 08. A.gaveB.madeC.surpriseD.got A. 09. A.prettyB.crowdedC.noisyD.wondernful A. 10. A.silenceB.fastC.quietD.loud A. 11. A.surprisingB.surprisedC.surpriseD.being surprised A. 12. A.to laughB.shoutingC.to talkD.singing A. 13. A.in the front ofB.at the back ofC.at the bottomD.in front of A. 14. A.eagerB.wantedC.likeD.anxious A. 15. A.braveB.kind enoughC.happyD.honest A. ============================ ============================ |
-- 作者:xml-linguist -- 发布时间:8/7/2008 11:52:00 AM -- 在修改: 先看以下内容 <xsl:template match="choices/item"> 从中去掉 <p> 显示中的第一行 01没有了: 01. A.wentB.beenC.doneD.gone A. 02. A.myB.mineC.ID.ours A. 03. A.beenB.been goingC.goneD.went A. 04. A.had talked toB.had seenC.had been withD.had visited A. ...... 但是,每一行后面还是多了一个 A。 |
-- 作者:xml-linguist -- 发布时间:8/7/2008 11:55:00 AM -- 再从 <?xml version="1.0" encoding="GB2312"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="choices/item"> <xsl:for-each select="mappingSerialNo"/> 中去掉 <xsl:for-each select="mappingSerialNo"/> 显示格式没有变化,还是每行后面多一个A。 |
-- 作者:xml-linguist -- 发布时间:8/7/2008 11:59:00 AM -- 再从<xsl:template match="mappingSerialNo">下面去掉 <xsl:for-each select="."/> 显示结果没有变化。 搞不懂了!!!!!! |
-- 作者:xml-linguist -- 发布时间:8/7/2008 12:08:00 PM -- 从 <xsl:template match="mappingSerialNo"> <html> <p> <xsl:value-of select="."/> <xsl:value-of select="mark"/> </p> </html> </xsl:template> 中去掉 <xsl:value-of select="mark"/> 合适了!!!!! ============== 02. A.myB.mineC.ID.ours ...... 15. A.braveB.kind enoughC.happyD.honest
|
-- 作者:xml-linguist -- 发布时间:8/7/2008 12:10:00 PM -- 最终的xsl为: <?xml version="1.0" encoding="GB2312"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="choices/item"> <html> <xsl:apply-imports/> </html> </xsl:template> <xsl:template match="mappingSerialNo"> </xsl:stylesheet> ================== |
-- 作者:Qr -- 发布时间:8/7/2008 3:20:00 PM -- 呵呵,整个过程都贴出来了。 |
-- 作者:xml-linguist -- 发布时间:8/7/2008 4:38:00 PM -- 今天感觉不错。 以上是一个ClozeTest体型的xml文件;感觉做xml没有什么问题,但是读取数据比较难,一直没有做。其实我做的xml文件包含了mutipleChoice; readingComprehension; fillInBlank以及书面回答问题等各种体型,适合于中、英文所有试题类型(现在的问题是数学化学物理生物部分的符号问题还没有解决)。但是我没有能力将做一个适合于综合文件的、合理xsl,暂时只能一个部分一个部分拆开来做,等每个部分完成了再想办法合为一体。 做了ClozeTest题型的xml和xsl之后,豁然开朗,今天有把readingComprehension的相关文件也做出来了。 有问题要请教Qr!请多多关照! |
-- 作者:xml-linguist -- 发布时间:8/9/2008 10:43:00 AM -- 今天又看了一遍: <?xml version="1.0" encoding="GB2312"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="choices/item"> <html> <xsl:apply-imports/> </html> </xsl:template> <xsl:template match="mappingSerialNo"> </xsl:stylesheet> 这中间有个错误: 难道<xsl:apply-imports />和<xsl:apply-templates/>两个元素都可以用在xsl中? |
-- 作者:xml-linguist -- 发布时间:8/9/2008 10:51:00 AM -- 经过反复试验,这两个东西还正的具有一样的功能。 <xsl:apply-imports/> <xsl:apply-templates/> 以下是我的实验过程: ============================== |
-- 作者:Qr -- 发布时间:8/9/2008 1:12:00 PM -- <xsl:apply-imports />和<xsl:apply-templates/>两个都XSL中的可用元素。 前者为导入外部XSL,后者运用模板到当前元素或节点。 从代码看,用后者才是正确的。 为什么用<xsl:apply-imports />也行呢,我估计是没有参数,<xsl:apply-imports />会将隐含的模板导入,这个隐含的模板是自带的。 |
-- 作者:xml-linguist -- 发布时间:8/9/2008 1:23:00 PM -- 谢谢Qr! 真的是意外的收获。我看xsl现在涉及到的仅仅是<xsl:apply-templates>, <xsl:template>, <xsl:for-each>, <xsl:value of>这么几个元素。 继续学,把<xsl:imports>也要用一用。 =============================== 上天助我呀!!!!
|
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
93.750ms |