我有这样的数据:XQuery:使用给定名称创建一个新元素?
<td>USERID</td>
<td>NAME</td>
<td>RATING</td>
我想把它改造成:
<userid></userid>
<name></name>
<rating></rating>
我怎样才能做到这一点?
我有这样的数据:XQuery:使用给定名称创建一个新元素?
<td>USERID</td>
<td>NAME</td>
<td>RATING</td>
我想把它改造成:
<userid></userid>
<name></name>
<rating></rating>
我怎样才能做到这一点?
使用一个computed element constructor,以产生具有用于每个td
元件的lower-case
值text
节点的元素。
甲计算元素构造 创建了一个元素节点,从而允许 的名称和要被计算的节点 的内容。
对于这个例子起见,假设你的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表达式的一部分,而不是元素构造函数li柯本:
<doc>
{
for $name in doc('foo.xml')//td/text()/lower-case(.)
return element {$name} {''}
}
</doc>
return <doc>{
for $d in $doc/element()/text()
return element{fn:lower-case($d)} {}}</doc>
其中$文档存储XML。