【问题标题】:Reading Multiple XML Files with BaseX使用 BaseX 读取多个 XML 文件
【发布时间】:2013-01-20 19:44:21
【问题描述】:

您好,我是 BaseX 的新手,我正在尝试从一个文件夹中读取一堆 XML 文件。读取这些文件后,我会将数据输出到数据库表(一些 RDBMS)中。但是我不知道从哪里开始,因为我找不到太多关于使用 BaseX 的教程。我在互联网上搜索过,但仍然没有太大帮助。有人可以帮我解决这个问题吗?

提前致谢。

【问题讨论】:

    标签: xml basex


    【解决方案1】:

    使用 CREATE DB yourdbname /path/to/foldercreate a database 包含此文件夹中的所有文档。要access the documents,请使用collection("yourdbname")。如果您需要访问特定文件,请使用collection("yourdbname/document.xml")

    要查询所有这些文件,你可以这样做

    for $document in collection("yourdbname")
    return string-join((
        document-uri($document),
        ": ",
        xs:string(count($document//*))
      ))
    

    这将返回所有文档路径及其相关节点数。

    如需进一步阅读,请查看BaseX' documentation 中的getting started section,您应该能够在其中找到所有需要的信息。要使用 SQL 在 RDBMS 中存储数据,请查看 SQL module,其中还包含一些示例。

    【讨论】:

    • 感谢您提供的信息,非常感谢。我浏览过这些文件并没有多大帮助。我将尝试再次深入研究它们。还有一个问题,您能告诉我如何使用 Xquery/Xpath 来查询多个 XML 文件并将返回的结果存储在任何 RDBMS 中。提前谢谢你
    • 你没有在你的问题中包含这个,所以我没有添加任何东西。我编辑了我的答案。
    • 非常感谢。
    【解决方案2】:

    单独添加几个文件:

    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

    您可能更喜欢图形前端而不是控制台(文本)界面。

    【讨论】:

      猜你喜欢
      • 2021-08-10
      • 1970-01-01
      • 1970-01-01
      • 2019-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多