我有以下数据:
<td>USERID</td>
<td>NAME</td>
<td>RATING</td>
Run Code Online (Sandbox Code Playgroud)
我想把它变成:
<userid></userid>
<name></name>
<rating></rating>
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
Mad*_*sen 22
使用计算元素构造函数生成具有每个元素lower-case
的text
节点值的td
元素.
甲计算元素构造 创建了一个元素节点,从而允许计算两者的名称和节点的内容.
为了示例,假设您的XML位于名为foo.xml的文件中,您可以执行以下操作:
<doc>
{
for $name in doc('foo.xml')//td/text()
return element {lower-case($name)} {''}
}
</doc>
Run Code Online (Sandbox Code Playgroud)
产生这个:
<?xml version="1.0" encoding="UTF-8"?>
<doc>
<userid/>
<name/>
<rating/>
</doc>
Run Code Online (Sandbox Code Playgroud)
您还可以将该lower-case()
函数作为XPATH表达式的一部分而不是元素构造函数进行评估,如下所示:
<doc>
{
for $name in doc('foo.xml')//td/text()/lower-case(.)
return element {$name} {''}
}
</doc>
Run Code Online (Sandbox Code Playgroud)