嗨,我是 BaseX 的新手,我正在尝试从文件夹中读取一堆 XML 文件。读取这些文件后,我会将数据输出到数据库表(一些 RDBMS)中。但是我不知道从哪里开始,因为我找不到太多关于使用 BaseX 的教程。我在互联网上搜索过,但仍然没有太大帮助。有人可以帮我解决这个问题。
提前致谢。
用于CREATE DB yourdbname /path/to/folder
创建包含此文件夹中所有文档的数据库。要访问文档,请使用collection("yourdbname")
. 如果您需要访问特定文件,请使用collection("yourdbname/document.xml")
.
要查询所有这些文件,您可以执行类似的操作
for $document in collection("yourdbname")
return string-join((
document-uri($document),
": ",
xs:string(count($document//*))
))
这将返回所有文档路径及其相关节点数。
如需进一步阅读,请查看BaseX 文档中的入门部分,您应该能够在其中找到所有需要的信息。要使用 SQL 在 RDBMS 中存储数据,请查看SQL 模块,其中还包含一些示例。
分别添加几个文件:
nicholas@mordor:~/flwor/bookstore$
nicholas@mordor:~/flwor/bookstore$ cat book1.xml
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
nicholas@mordor:~/flwor/bookstore$
nicholas@mordor:~/flwor/bookstore$ cat book2.xml
<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
nicholas@mordor:~/flwor/bookstore$
nicholas@mordor:~/flwor/bookstore$ basex
BaseX 9.0.1 [Standalone]
Try 'help' to get more information.
>
> create database books
Database 'books' created in 225.89 ms.
>
> open books
Database 'books' was opened in 0.04 ms.
>
> set parser xml
PARSER: xml
>
> add book1.xml
Resource(s) added in 160.76 ms.
>
> add book2.xml
Resource(s) added in 4.86 ms.
>
> xquery /book/title
<title lang="en">Everyday Italian</title>
<title lang="en">Harry Potter</title>
Query executed in 188.71 ms.
>
> exit
Have a nice day.
nicholas@mordor:~/flwor/bookstore$
数据来自:
https://www.w3schools.com/xml/books.xml
其中介绍了 Xquery 和 FLWOR
您可能更喜欢图形前端而不是控制台(文本)界面。