以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 XSL/XSLT/XSL-FO/CSS 』 (http://bbs.xml.org.cn/list.asp?boardid=8) ---- 烦恼 数据库中查询出的内容重新组织为新的XML文档 请各位大侠帮忙。感激不尽! (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=84784) |
-- 作者:guduke -- 发布时间:5/16/2010 12:22:00 AM -- 烦恼 数据库中查询出的内容重新组织为新的XML文档 请各位大侠帮忙。感激不尽! 有个问题想请教各位, 我有一些内容存在数据库中,一次查询可以查询出N条SQL记录。 其中查询的内容可以 其中ModelID中为整数数字 Field中为xml文档 文档的格式如下: 我需要将这个文档中的ArrayOfFieldInfo/FieldInfo[@Id='edition']/Settings/string[1] 的内容取出(也就是 语文版|1$$$苏教版|2$$$鄂教版|3)具体内容不定,可能 有更多或更少。按如下的格式组织成一个新的XML文档。 其中category="102" 102 为ModelID的值(具体值随着数据库里查询的内容变化),每一个 也就是最后的XML文档需要用for-each 或迭代循环每条记录合成最后 <CATALOG>
以下是我自己的思考,可以不看!--------------------------------我按如下: <?xml version="1.0" encoding="utf-8"?> exclude-result-prefixes="pe"> 但是 <xsl:variable name="Array"> 这样 但是如果直接 <xsl:value-of select="/NewDataSet/Table/Field"/>也是可以显示值的。
|
-- 作者:jj_long -- 发布时间:5/16/2010 8:38:00 PM -- 楼主没有把输入数据的格式交代清楚。我试着按照描述给出一个输入数据,试着提供一个XSLT,希望能对楼主有些帮助。 1. 输入数据格式: <NewDataSet> </Field> </Field> </Field> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes"/> <xsl:template match="/"> <xsl:template match="table"> <xsl:template match="Settings/string"> <xsl:template name="f-output-item"> </xsl:stylesheet> ================================================== 3. 输出结果 </CATALOG> |
-- 作者:guduke -- 发布时间:5/16/2010 11:51:00 PM -- 编辑掉。这个表达错了! |
-- 作者:guduke -- 发布时间:5/17/2010 12:19:00 AM -- 对不起 上面的意思表达错了。 文件结构如下 1. 输入数据格式: <NewDataSet> <ArrayOfFieldInfo> ... (这个地方时上面的重复。)下面的field依次是这样 主要有<?xml version="1.0" encoding="utf-16"?>不碍事吧! </Field> </Field> </Field> 即field内部是一个xml文档。要取得field 中filed/ArrayOfFieldInfo/FieldInfo[@Id='version']/Settings/string[1]"/
|
-- 作者:jj_long -- 发布时间:5/17/2010 9:25:00 AM -- 1.XML里边再有<?xml version="1.0" encoding="utf-16"?>不合法,这句必须出现在XML的第一句。 2. Q&A A: 是的。 |
-- 作者:guduke -- 发布时间:5/17/2010 10:31:00 AM -- XML里边再有<?xml version="1.0" encoding="utf-16"?>不合法, 即Field 里面就是一个XML文档 我也没办法控制 <?xml version="1.0" encoding="utf-16"?> 没有。而且一定会有这么一句的。那请问如何通过变通的方式才能使得正常运行下来啊!。也就是取得string节点值呢。这个是从数据表中查询出来的。没办法控制那句不出现。 [此贴子已经被作者于2010-5-17 11:11:05编辑过]
|
-- 作者:jj_long -- 发布时间:5/18/2010 5:55:00 PM -- 如果你的XML不合法,XML解析器是不能解析这个XML并使用XSLT。这样就不是一个XSLT的问题而是你程序架构的问题。 你需要想办法让你的XML合法。 考虑解决办法的优先级:
|
-- 作者:guduke -- 发布时间:5/19/2010 4:17:00 PM -- 感谢你给我写的XSLT,我变通的一下运用起来了,非常感谢你的帮助。谢谢! |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
109.375ms |