Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XQuery-根据其子元素位于;禁止";列表_Xquery - Fatal编程技术网

XQuery-根据其子元素位于;禁止";列表

XQuery-根据其子元素位于;禁止";列表,xquery,Xquery,我对XQuery完全不了解,但在开始深入研究它之前,我想请教一些专家,我是否在寻找正确的方向 问题是: 包含大量用户及其访问信息(密码访问权限等)的巨大xml文件示例如下: <user> <name>JC1234</name> <password>popstar</password> <accesslevel>0</accesslevel> </user> <user&g

我对XQuery完全不了解,但在开始深入研究它之前,我想请教一些专家,我是否在寻找正确的方向

问题是: 包含大量用户及其访问信息(密码访问权限等)的巨大xml文件示例如下:

<user>
    <name>JC1234</name>
    <password>popstar</password>
    <accesslevel>0</accesslevel>
</user>
<user>
    <name>AHkl</name>
    <password>Rudy10!</password>
    <accesslevel>2</accesslevel>
</user>

JC1234
流行歌星
0
AHkl
粗鲁!
2.
我有一个用户名列表(csv文件),需要从庞大的xml文件中删除。 结果应该是一个新的xml文件,其中没有那些被删除的用户

这在XQuery中可行吗?
欢迎任何关于快速、肮脏解决方案的建议

在vanilla XQuery 1.0中没有加载CSV文件的标准方法,尽管大多数实现都有未解析的文本函数或类似函数。如果没有,文件的内容可以作为参数传入

可以使用标记化功能解析CSV文件:

declare variable $names = tokenize(unparsed-text("banned.csv"), ",")
而实际的查询非常简单。假设您的文档是一个只包含
节点列表的片段,那么查询就是

doc("users.xml")/user[not(name=$names)]
但是,如果XML文件包含大量其他数据,那么您可能会发现XSLT的模板工具更有用