以文本方式查看主题 - 中文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=67736) |
-- 作者:xml-linguist -- 发布时间:9/28/2008 11:38:00 AM -- [求助]关于顺序问题的xsl(我都有点不知道该怎么问) xml文件如下: <paragraph> <sentence> <text>When I was ...</text> </sentence> <sentence> <serialNo></serialNo> </sentence> </paragraph> 说明:sentence元素中的子元素<text> <serialNo> <punctuation>可以以任意次序出现任意次数. 其中<text>和<punctuation>包含固定的数据,<serialNo>为编号的空格. 问题: 1. xsl怎么做才能保持一个<sentence>中<text> <serialNo> <punctuation>的值按照原来顺序出现,即:保持第一个<sentenc>中<text/><serialNo/><text/></punctuation><serialNo/><text/></punctuation>的顺序;保持第二个<sentenc>中<serialNo/><text/></punctuation><text/><serialNo/></punctuation>的顺序? 2. 如果想让//serialNo在<sentence>中按照顺序显示为 When I was (01)______ about ten years ago,(02)______happened to ... . (03______ has never occurred to me whehther it was true or not, but it (04)______. 先谢谢了!
[此贴子已经被作者于2008-9-28 13:51:07编辑过]
|
-- 作者:xml-linguist -- 发布时间:9/28/2008 11:57:00 AM -- 我先后实验过几个格式,按什么顺序写就按什么顺序显示.比如: <xsl:value-of select="text"/> <xsl:value-of select="serialNo"/> <xsl:value-of select="punctuation"/> 先是所有的<text>全部显示,然后所有的<serialNo>,最后是所有的<punctuation>;无法保持原来的顺序. 我还没有能力处理这个问题.只能求助了. |
-- 作者:Qr -- 发布时间:9/29/2008 10:40:00 AM -- <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:template match="*"> </xsl:stylesheet> |
-- 作者:xml-linguist -- 发布时间:9/29/2008 11:32:00 AM -- Thanks to QR. Now the problem is, when I further define the element <serialNo>, I don't know how to maintain the original order of the three "child" of <sentence>; and I want each <serialNo> element to be given a number. |
-- 作者:Qr -- 发布时间:9/29/2008 12:28:00 PM -- 你要做“完型填空”?给出完整的XML和想要的结果,看看能不能实现。 |
-- 作者:xml-linguist -- 发布时间:9/29/2008 1:26:00 PM -- <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="questionField.xsl"?> <!DOCTYPE questionField [ <!ELEMENT questionField (paragraph+)> <!ELEMENT paragraph (role*, sentence+)> <!ELEMENT role (#PCDATA)> <!ELEMENT sentence (english*, chinese*)> <!ELEMENT english (text*, serialNo*, punctuation*)*> <!ELEMENT chinese (text*, serialNo*, punctuation*)*> <!ELEMENT text (#PCDATA)> <!ELEMENT serialNo (#PCDATA)> <!ELEMENT punctuation (#PCDATA)> ]> <questionField> <paragraph> <role/> <sentence> <sentence> </paragraph> <paragraph> <role/> <sentence> <sentence> </paragraph> <questionField>
|
-- 作者:xml-linguist -- 发布时间:9/29/2008 1:31:00 PM -- 需要的结果如下: When I was (01)______ about ten years ago,(02)______happened to ... . (03)______ has never occurred to me whehther it was true or not, but it (04)______. Then (05)______ everything ... (06) ______ ...... |
-- 作者:xml-linguist -- 发布时间:9/29/2008 1:35:00 PM -- 至于<sentence>为什么包含<english>和<chinese>两个子元素,是考虑到处理汉语题型。在<english>和<chinese>所包含的子元素中不能没有<punctuation>元素,因为英汉两种语言显示的标点符号不一样。 <role>元素一般情况下为空元素,但是为了方便对有些对话形式的题型中的“角色”或“人物”的数据处理特意添加了这个元素。
|
-- 作者:Qr -- 发布时间:10/6/2008 10:18:00 AM -- <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:template match="serialNo"> </xsl:stylesheet> When I was ...(1)____about ten years ago,(2)____happened to ....(3)____has never occurred to me whehther it was true or not, but it(4)____. |
-- 作者:xml-linguist -- 发布时间:10/6/2008 11:17:00 AM -- 很有启发。 问题还是有一点。感觉沿着这个思路往下走,没错。 知道该从哪里下手了,先钻研一下相关内容再说。 非常感谢。 |
-- 作者:Qr -- 发布时间:10/6/2008 3:42:00 PM -- XPath是个好东西,掌握好了写XSL事半功倍。 |
-- 作者:xml-linguist -- 发布时间:10/6/2008 11:21:00 PM -- 对! 以前看到过count, preceeding等,感觉用不着;实际上是没有吃透。现在看来得好好学习了。 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
78.125ms |