送分来了,来者有他!!!!!!

yifanwu 2004-01-06 05:03:22
请问下面这一段xml文档要怎么理解呀?是xslt吗?
<Switch>
<Expr>
<GetVar Name="Codepage"/>
</Expr>
<Case Value="0">
<HTML><![CDATA[ lang="gb" ]]></HTML>
</Case>
<Default>
<HTML><![CDATA[ lang="us" ]]></HTML>
</Default>
</Switch>


3ks
...全文
97 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
yifanwu 2004-01-13
  • 打赏
  • 举报
回复
我的意思是说只是一个普通的xml文档,不能实现流程控制?
yifanwu 2004-01-13
  • 打赏
  • 举报
回复
谢谢楼上的回复!如果按大家的回复,是不是我给出的xml没有什么意义呢?
duty 2004-01-13
  • 打赏
  • 举报
回复
ding
dreamsun 2004-01-12
  • 打赏
  • 举报
回复
可能是一个网站的模板?简体版,英文版?默认是英文版?
然后还可以加入更多的case节点。
yifanwu 2004-01-12
  • 打赏
  • 举报
回复
谢谢楼上各位的回复。


要是想把那段xml解释为:如果Codepage="0" 就向客户端输出 lang="gb" 否则输出 lang="us"
请问该怎么做?

如果分不够我再加,还有8000多吧。谢谢各位!

xml文档:
<Switch>
<Expr>
<GetVar Name="Codepage"/>
</Expr>
<Case Value="0">
<HTML><![CDATA[ lang="gb" ]]></HTML>
</Case>
<Default>
<HTML><![CDATA[ lang="us" ]]></HTML>
</Default>
</Switch>
gbliang 2004-01-12
  • 打赏
  • 举报
回复
xml
nattyfish 2004-01-12
  • 打赏
  • 举报
回复
只是xml
adjoin 2004-01-12
  • 打赏
  • 举报
回复
若还有选项,<xsl:when test>可以有若干个
adjoin 2004-01-12
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="/">
<xsl:choose>
<xsl:when test="/Switch/Case[@value]='0'">lang="gb"</xsl:when>
<xsl:otherwise>lang="us"</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
yifanwu 2004-01-12
  • 打赏
  • 举报
回复
xml中可以实现像switch之类的流程控制吗?
adjoin 2004-01-08
  • 打赏
  • 举报
回复
一个xml
xinyu1225 2004-01-07
  • 打赏
  • 举报
回复
up
zangleo 2004-01-07
  • 打赏
  • 举报
回复
同意zhfkiller(杀手)的意见
guoyan19811021 2004-01-07
  • 打赏
  • 举报
回复
xuexi
skyupsky 2004-01-07
  • 打赏
  • 举报
回复
up
minghui000 2004-01-07
  • 打赏
  • 举报
回复
UP
jackwin 2004-01-07
  • 打赏
  • 举报
回复
UP
snowcloud2002 2004-01-06
  • 打赏
  • 举报
回复
good
潜水的鱼 2004-01-06
  • 打赏
  • 举报
回复
转:

XML的文档格式
首先介绍XML文档内容的基本单元——元素,它的语法格式如下:
〈标签〉文本内容〈/标签〉
元素是由起始标签、元素内容和结束标签组成。用户把要描述的数据对象放在起始标签和结束标签之间。例如:
<姓名>王平</姓名>
无论文本内容有多长或者多么复杂,XML元素中还可以再嵌套别的元素,这样使相关信息构成等级结构。下面的例子中,在<employees>的元素中包括了所有职员的信息,每位职员都由<employee>元素来描述,而<employee>元素中又嵌套了<name>和<salary>元素。
例1:
<employees>
<employee>
<name>Lars Peterson</name>
<salary>25000</salary>
</employee>
<employee>
<name>Charlotte M. Cooper</name>
<salary>34500</salary>
</employee>
</employees>
除了元素,XML文档中能出现的有效对象是:处理指令、注释、根元素、子元素和属性。
● 处理指令
处理指令给XML解析器提供信息,使其能够正确解释文档内容,它的起始标识是“<?”,结束标识是“?>”。常见的XML声明就是一个处理指令:
<?xml version=“1.0”?>
处理指令还可以有其他的用途,比如定义文档的编码方式是GB码还是Unicode编码方式,或是把一个样式单文件应用到XML文档上用以显示。
● 注释
注释是XML文件中用作解释的字符数据,XML处理器不对它们进行任何处理。注释是用“<!--”和“ --> ”引起来的,可以出现在XML元素间的任何地方,但是不可以嵌套:
<!--这是一个注释-->
● 根元素和子元素
如果一个元素从文件头的序言部分之后开始一直到文件尾,包含了文件中所有的数据信息,我们称之为根元素。
XML元素是可以嵌套的,那么被嵌套在内的元素称为子元素。在前面的例子中,<employee>就是<employees>的子元素。
● 属性
属性给元素提供进一步的说明信息,它必须出现在起始标签中。属性以名称/取值对出现,属性名不能重复,名称与取值之间用等号“=”分隔,并用引号把取值引起来。例如:
<salary currency=“US$”> 25000 </salary>
上例中的属性说明了薪水的货币单位是美元。
XML的语法
XML文档的基本结构由序言部分和一个根元素组成。序言包括了XML声明和DTD(或者是XML Schema),DTD(Document Type Define,文档定义类型)和XML Schema都是用来描述XML文档结构的,也就是描述元素和属性是如何联系在一起的。
例如,在例1的文档前面加上如下的序言部分,就构成了一个完整的XML文档:
<?xml version=“1.0”?>
<!DOCTYPE employees SYSTEM“employees.dtd”>
一个XML文档中有且仅有一个根元素,其他所有的元素都是它的子元素,在例1中,<employees>就是根元素。
一个XML文档首先应当是“格式良好的”(Well-Formed),该规定的正式定义位于:
http://www.w3.org/TR/REC-xml
“格式良好的”XML文档除了要满足根元素唯一的特性之外,还包括:
● 起始标签和结束标签应当匹配:结束标签是必不可少的;
● 大小写应一致:XML对字母的大小写是敏感的,<employee>和<Employee>是完全不同的两个标签,所以结束标签在匹配时一定要注意大小写一致;
● 元素应当正确嵌套:子元素应当完全包括在父辈元素中,下面的例子就是嵌套错误:
<A>
<B>
</A>
</B>
正确的嵌套方式如下:
<A>
<B>
</B>
</A>
● 属性必须包括在引号中;
● 元素中的属性是不允许重复的。
XML文档的“有效性”是指一个XML文档应当遵守DTD文件或是Schema的规定,“有效的”XML文档肯定是“格式良好的”,有关内容我们会在以后详细说明。
XML的名称空间
XML文档中很可能会定义许多名字相同而意义不同的元素或属性,尤其在把不同的XML文档合而为一时,更容易产生冲突。名称空间就是为了解决这个问题而提出的。它用URI(Uniform Resource Indicator,统一资源指示器)加以区别,是在XML文件的元素和属性中出现的所有名称的集合。如下例:
<pr:payment xmlns:pr=“http://www. microsoft.com/payroll”>
<pr:employee>Lars Peterson</pr:employee>
<pr:description>Reimburse expenses</pr:description>
<pr:total>199.76</pr:total>
</pr:payment>
有了名称空间,用户就可以保证在文件中使用的名称是唯一的。对元素的属性xmlns进行定义就表示对该元素指定了一个名称空间。namespace_name必须是一个有效的URI。
如果省略local_prefix(本地前缀),这时就构成了缺省名称空间:
<payment xmlns=“http://www.microsoft.com/acct”>
<customer>1234</customer>
<amount>500.00</amount>
<date_received>12-03-2000</date_received>
</payment>
如果对一个元素定义了缺省名称空间,那么该元素及其子元素,包括它们的属性都会自动地成为该名称空间的一部分,不用再在每一个元素和属性前面一一标明了。
在本文开始部分,我们对XML这个新兴的技术做了一个概述,对它的优缺点进行了分析,并对其美好的应用前景进行了展望。在本文后半部分则对XML文档的相关语法、格式做了简要的描述,并介绍了几种有用的开发工具。在以后的内容中,我们会全面展开,深入到XML技术内部,去探索一下这个美妙的世界!
tweit 2004-01-06
  • 打赏
  • 举报
回复
帮你顶一下
加载更多回复(2)
miniblink是什么?Miniblink是一个追求极致小巧的浏览器内核项目,全世界第三大流行的浏览器内核控件。其基于chromium最新版内核,去除了chromium所有多余的部件,只保留最基本的排版引擎blink。Miniblink保持了10M左右的极简大小,是所有同类产品最小的体积,同时支持windows xp、npapi。为什么要做miniblink?市面上作为嵌入的组件的可用的浏览器内核,不外乎这几个:webkit、cef、nwjs、electron。cef:优点是由于集成的chromium内核,所以对H5支持的很全,同时因为使用的人也多,各种教程、示例,资源很多。但缺点很明显,太大了。最新的cef已经夸张到了100多M,还要带一堆的文件。同时新的cef已经不支持xp了(chromium对应版本是M49)。而且由于是多进程架构,对资源的消耗也很夸张。如果只是想做个小软件,一坨文件需要带上、超大的安装包,显然不能忍受。nwjs,或者最近大火的electron:和cef内核类似,都是chromium内核。缺点和cef一模一样。优点是由于可以使用nodejs的资源,同时又自带了各种api的绑定,所以可以用的周边资源非常丰富;而基于js的开发方案,使得前端很容易上手。所以最近N多项目都是基于nwjs或electron来实现。例如vscode,atom等等。原版webkit:现在官网还在更新windows port,但显然漫不在心,而且最新的webkit也很大了,超过20几M。最关键的是,周边资源很少,几乎没人再基于webkit来做开发。同时由于windows版的saferi已经停止开发了,所以用webkit就用不了他的dev tools了。这是个大遗憾。WKE:这是个很老的webkit内核的裁剪版了。小是小,但bug太多了。那么关键点来了,使用miniblink有啥好处呢??首先,miniblink对大小要求非常严格。原版chromium、blink里对排版渲染没啥大用的如音视频全都被砍了,只专注于网页的排版和渲染。甚至为了裁剪大小,我不惜使用vc6的crt来跑mininblink(见我上篇文章)。这个也算前无古人后无来者了。其次,miniblink紧跟最新chromium,这意味着chromium相关的资源都可以利用。在未来的规划里,我是打算把electron的接口也加上的,这样可以无缝替换electron。使用miniblink的话,开发调试时用原版electron,发布的时候再替换掉那些dll,直接可以无缝切换,非常方便。miniblink如何使用?Miniblink导出了electron、WKE的接口,可以直接无缝替换现有的electron、WKE项目。早期miniblink还导出了CEF接口,不过现在已被废弃。miniblink有个小demo,从demo里可以看到,brackct这个基于cef的开源编辑器,已经顺利由miniblink跑起来了。现在electron的接口已做好,vscode跑起来了。更详细的使用文档见本页其他文章。miniblink如何裁剪到这么小?这个比较复杂了。主要就是把blink从chromium抽离了出来,同时补上了cc层(硬件渲染层)。现在的blink,已经不是当年的那个webkit了,渲染部分全走cc层,复杂无比。我这大半年都在重写他那个蛋疼又复杂的cc层。和webkit比,miniblink架构有什么优势现在的webkit版本,已经比miniblink落后太多了。blink一直在加入各种极富创造力和想象力的功能、组件。例如,blink早就加入多线程解析html token、blink gc回收器、多线程录制回放渲染机制。这些能让blink的解析渲染速度极大提升。下一次,我会先开源出blink gc组件,这东西很有意思,在c 里硬是搞出了一个垃圾回收机制,能让你像写java一样写c 。
miniblink是什么? (抄了一下 龙泉寺扫地僧 写的简洁) Miniblink是一个全新的、追求极致小巧的浏览器内核项目, 其基于chromium最新版内核,去除了chromium所有多余的部件,只保留最基本的排版引擎blink。 Miniblink保持了10M左右的极简大小,是所有同类产品最小的体积,同时支持windows xp、npapi。 为什么要做miniblink? 市面上作为嵌入的组件的可用的浏览器内核,不外乎这几个:webkit、cef、nwjs、electron。 cef:优点是由于集成的chromium内核,所以对H5支持的很全,同时因为使用的人也多,各种教程、示例,资源很多。但缺点很明显,太大了。最新的cef已经夸张到了100多M,还要带一堆的文件。同时新的cef已经不支持xp了(chromium对应版本是M49)。而且由于是多进程架构,对资源的消耗也很夸张。如果只是想做个小软件,一坨文件需要带上、超大的安装包,显然不能忍受。 nwjs,或者最近大火的electron:和cef内核类似,都是chromium内核。缺点和cef一模一样。优点是由于可以使用nodejs的资源,同时又自带了各种api的绑定,所以可以用的周边资源非常丰富;而基于js的开发方案,使得前端很容易上手。所以最近N多项目都是基于nwjs或electron来实现。例如vscode,atom等等。 原版webkit:现在官网还在更新windows port,但显然漫不在心,而且最新的webkit也很大了,超过20几M。最关键的是,周边资源很少,几乎没人再基于webkit来做开发。同时由于windows版的saferi已经停止开发了,所以用webkit就用不了他的dev tools了。这是个大遗憾。 WKE:这是个很老的webkit内核的裁剪版了。小是小,但bug太多了。 那么关键点来了,使用miniblink有啥好处呢?? 首先,miniblink对大小要求非常严格。原版chromium、blink里对排版渲染没啥大用的如音视频全都被砍了,只专注于网页的排版和渲染。甚至为了裁剪大小,我不惜使用vc6的crt来跑mininblink。这个也算前无古人后无来者了。 其次,miniblink紧跟最新chromium,这意味着chromium相关的资源都可以利用。在未来的规划里,我是打算把electron的接口也加上的,这样可以无缝替换electron。使用miniblink的话,开发调试时用原版electron,发布的时候再替换掉那些dll,直接可以无缝切换,非常方便。

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧