我有以下数据:
<td>USERID</td>
<td>NAME</td>
<td>RATING</td>
我想将其转换为:
<userid></userid>
<name></name>
<rating></rating>
我该怎么做?
答案 0 :(得分:21)
使用computed element constructor为每个lower-case
元素生成text
个td
个节点值的元素。
计算元素构造函数 创建一个元素节点,允许两者 节点的名称和内容 计算。
为了示例,假设您的XML位于名为 foo.xml 的文件中,您可以执行以下操作:
<doc>
{
for $name in doc('foo.xml')//td/text()
return element {lower-case($name)} {''}
}
</doc>
产生这个:
<?xml version="1.0" encoding="UTF-8"?>
<doc>
<userid/>
<name/>
<rating/>
</doc>
您还可以将lower-case()
函数评估为 XPATH 表达式的一部分而不是元素构造函数,如下所示:
<doc>
{
for $name in doc('foo.xml')//td/text()/lower-case(.)
return element {$name} {''}
}
</doc>
答案 1 :(得分:0)
return <doc>{
for $d in $doc/element()/text()
return element{fn:lower-case($d)} {}}</doc>
其中$ doc存储Xml。