首页 > 解决方案 > 查询没有显示书籍的页面或标题

问题描述

我一直在尝试查询一段时间,但我无法做到。你给我的例子很简单。借书的书名、第一作者和页码。这就是练习。这是我尝试过的,但我没有得到任何回报。

这是我的查询

  let $b := //biblioteca
    for $c in $b/prestamos/entrada/titulo
    for $d in $b/libros/libro[/titulo=$c]
    return $c and $d/paginas and $d/autor

这是 XML 文件:

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<!-- Fichero: libros.xml -->
<biblioteca>
 <libros>
  <libro publicacion="2003" edicion="2">
    <titulo>Learning XML</titulo>
    <autor>
      <apellido>Ray</apellido>
      <nombre>Erik T.</nombre>
    </autor>
    <editorial>O'Reilly</editorial>
    <paginas>416</paginas>
  </libro>
  <libro publicacion="2003" edicion="2">
    <titulo>XML Imprescindible</titulo>
    <autor>
      <apellido>Harold</apellido>
      <nombre>Elliot Rusty</nombre>
    </autor>
    <autor>
    <apellido>Means</apellido>
      <nombre>W. Scott</nombre>
    </autor>
    <editorial>O'Reilly</editorial>
    <paginas>832</paginas>
  </libro>
  <libro publicacion="2002">
    <titulo>XML Schema</titulo>
    <autor>
      <apellido>van der Vlist</apellido>
      <nombre>Eric</nombre>
    </autor>
    <editorial>O'Reilly</editorial>
    <paginas>400</paginas>
  </libro>
  <libro publicacion="2002">
    <titulo>XPath Essentials</titulo>
    <autor>
      <apellido>Watt</apellido>
      <nombre>Adrew</nombre>
    </autor>
    <editorial>Wiley</editorial>
    <paginas>516</paginas>
  </libro>
  <libro publicacion="2005">
    <titulo> Beginning XSLT 2.0: Form Novice to Professional</titulo>
    <autor>
      <apellido>Tennison</apellido>
      <nombre>Jeni</nombre>
    </autor>
    <editorial>Apress</editorial>
    <paginas>797</paginas>
  </libro>
  <libro publicacion="2007">
    <titulo> XQuery</titulo>
    <autor>
      <apellido>Walmsley</apellido>
      <nombre>Priscilla</nombre>
    </autor>
    <editorial>O'Reilly</editorial>
    <paginas>491</paginas>
  </libro>
 </libros>

<!-- Tabla prestamos -->
 <prestamos>
  <entrada>
    <titulo>XML Imprescindible</titulo>
    <prestamo>
      <inicio>2011-05-02</inicio>
      <lector>
        <nombre>Pepito</nombre>
        <apellidos>Grillo</apellidos>
        <direccion>Rue Percebe, 13</direccion>
        <telefono>972987654</telefono>
      </lector>
    </prestamo>
  </entrada>
  <entrada>
    <titulo>XML Imprescindible</titulo>
    <prestamo>
      <inicio>2011-02-12</inicio>
      <devolucion>2011-02-16</devolucion>
      <lector>
        <nombre>Jose</nombre>
        <apellidos>Gutiérrez González</apellidos>
        <direccion>Rue Percebe, 13</direccion>
        <telefono>919485432</telefono>
      </lector>
    </prestamo>
  </entrada>
  <entrada>
    <titulo>XPath Essentials</titulo>
    <prestamo>
      <inicio>2011-02-23</inicio>
      <devolucion>2011-03-10</devolucion>
      <lector>
        <nombre>Pepito</nombre>
        <apellidos>Grillo</apellidos>
        <direccion>Rue Percebe, 13</direccion>
        <telefono>972987654</telefono>
      </lector>
    </prestamo>
  </entrada>
 </prestamos>
</biblioteca>

我正在使用数据库在 java 中工作,我需要用这个查询创建一个脚本,但是我从老师那里得到的例子非常基本,我在查询时找不到我犯的错误。我希望你能帮帮我

标签: xquery

解决方案


在您可能想要$b/libros/libro[titulo=$c]而不是的谓词$b/libros/libro[/titulo=$c]中,/titulo选择titulo根元素,同时titulo选择使用谓词titulo的元素的子libro元素。

该运算符and是一个布尔运算符,所以我怀疑您是否想在return子句中使用它。您没有显示您想要的结果,逗号运算符($c, $d/paginas, $d/autor)更有可能返回有意义的结果。


推荐阅读