xslt中的XML结点有没有toString()之类的方法

herowach 2008-07-24 03:19:05
如题,我想把一个结点的字符串作为另一个结点的属性值,该怎么做,如果Element有什么toString()之类的方法的话,请告诉一下,
我试过强转string($结点对象)和在attribute里用copy都不行,
另外一种就是土办法,自己把结点名字和属性拼成字符串,相当于自己做了个toString的方法,想知道有现成的吗?
...全文
73 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cds27 2008-07-29
  • 打赏
  • 举报
回复
你所说的“所有内容(包括XML头尾)”不知道是什么样的概念,如果包括标签的话,那显然是有问题的。你对XML的基本概念还没搞清楚。
符号“<“和”>”都是必须转义的标签,copy-of是原封不动的复制,并不会帮你转义的。
那么,假设copy-of成功执行了,同时产生了你所要的文档,很明确的,那并不是一个XML文档。
你要一个以XML为基础的语言,产生一个不合法的XML,那不是一个自相矛盾吗?
唯一的方式就是你用字符串拼起来,这样能避免XML的判断,仅仅被认为是字符串。

如果你要的仅仅是元素中的文本内容,那么以下的语句就可以实现。
<xsl:template match="Src">
<xsl:element name="Node" >
<xsl:attribute name="Value">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:element>
</xsl:template>

herowach 2008-07-28
  • 打赏
  • 举报
回复
请问,你的xmlnode是个什么啊?结点名称? 试过了,不行
ilovenili 2008-07-28
  • 打赏
  • 举报
回复
我也顶一个
Qiaorui 2008-07-27
  • 打赏
  • 举报
回复
<xsl:attribute name="test"><xslvalue-of select="xmlnode"/></xsl:attribute>
herowach 2008-07-26
  • 打赏
  • 举报
回复
未解决...顶```
herowach 2008-07-25
  • 打赏
  • 举报
回复
<xsl:attribute 上没有select的属性哦,
并且

<xsl:template match="Src">
<xsl:variable name="current" select="."/>
<xsl:element name="Node" >
<xsl:attribute name="Value">
<xsl:value-of select="$current"/>
</xsl:attribute>
</xsl:element>
</xsl:template>

我也试过了,也不行,我现在就是想把原来的结点中的所有内容(包括XML头尾)都放到一个新的结点的属性当中去,
用直接拼字符的方式已经实现,但还想知道有没有直接toString的方法.
Qiaorui 2008-07-24
  • 打赏
  • 举报
回复
字符串函数
string string(object?)

string 函数将对象依下列各项转换成字符:

节点集合通过返回在节点集合中文档顺序下第一个节点的字串值来转换成字符串。如果节点是空的则返回空字符串。

数字按以下方式转换成字符

NaN 转换成字符串 NaN

正零转换成字符串 0

负零转换成字符串 0

正无穷大转换成字符串 Infinity

负无穷大转换成字符串 -Infinity

如果数字是整数,该数字表示成一个与无小数点及领头零的 Number一样的十进制的形式,如果数字是负数,则在其前加一个负号(-)。

否则,该数字表示成一个与包括小数点及至少在小数点前面有一数字并且小数点后有一数字的 Number一样的十进制的形式,如果数字是负数,则在其前加一个负号(-);除了在小数点前要求直接要有一个位的零外,不应该有领头的零;在小数点后除了要求的一位数外,应有不多不少的位来区分该数与所有其它的 IEEE 754 数值。

布尔的假值转换成字符串 false。布尔的真值转换成字符串 true。

不是四种基本类型的对象依照所属类型的方式转换成字符串。

如果参数省略,则缺省为仅有一个上下文节点为成员的节点集合。

注意:

string 函数不是要用来将数字转换成字符串呈现给用户的。
Qiaorui 2008-07-24
  • 打赏
  • 举报
回复
假设结点为xmlnode,那么将其下文本作为节点new的属性test的属性值可以这么写:
<new>
<xsl:attribute name="test" select="xmlnode"/>
</new>

8,906

社区成员

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

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