Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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
Xml 使用给定的输出生成xquery_Xml_Xquery - Fatal编程技术网

Xml 使用给定的输出生成xquery

Xml 使用给定的输出生成xquery,xml,xquery,Xml,Xquery,我想使用给定的输出生成xquery。 我的XML如下所示: <?xml version="1.0" encoding="UTF-8"?> <S_db> <student id="94811"> <name>Rusty Nail</name> <quizzes> <quiz>16</quiz> <quiz>12</q

我想使用给定的输出生成xquery。 我的XML如下所示:

   <?xml version="1.0" encoding="UTF-8"?>

   <S_db>
    <student id="94811">
    <name>Rusty Nail</name>
    <quizzes>
        <quiz>16</quiz>
        <quiz>12</quiz>
    </quizzes>
    <projects>
        <project>44</project>
        <project>52</project>
    </projects>
    <exams>
        <exam>77</exam>
        <exam>68</exam>
        <exam>49</exam>
        </exams>
    </student>
    <student id="2562">
    <name>Guy Wire</name>
    <quizzes>
        <quiz>15</quiz>
        <quiz>23</quiz>
    </quizzes>
    <projects>
        <project>33</project>
        <project>47</project>
        </projects>
    <exams>
        <exam>78</exam>
        <exam>86</exam>
        <exam>88</exam>
    </exams>
    </student>
    <student id="137745">
    <name>Barb Wire</name>
    <quizzes>
        <quiz>20</quiz>
        <quiz>25</quiz>
    </quizzes>
    <projects>
        <project>48</project>
        <project>60</project>
        </projects>
    <exams>
        <exam>38</exam>
        <exam>48</exam>
        <exam>66</exam>
    </exams>
    </student>
    </S_db>
<?xml version="1.0" encoding="UTF‑8"?>
<projects>
<student>
<name>Barb Wire</name>
<total>108</total>
</student>
<student>
<name>Guy Wire</name>
<total>80</total>
</student>
<student>
<name>Rusty Nail</name>
<total>96</total>
</student>
    <student>
   {for $i in (1 to 3) return
   <total> { for $a in /S_db
   let $s := sum($a/student[$i]/projects/project)
   let $name := $a/student[$i]/name
   return ($s)}
   </total>
   }
  </student>

生锈的钉子
16
12
44
52
77
68
49
拉线
15
23
33
47
78
86
88
铁丝网
20
25
48
60
38
48
66
要生成的输出如下所示:

   <?xml version="1.0" encoding="UTF-8"?>

   <S_db>
    <student id="94811">
    <name>Rusty Nail</name>
    <quizzes>
        <quiz>16</quiz>
        <quiz>12</quiz>
    </quizzes>
    <projects>
        <project>44</project>
        <project>52</project>
    </projects>
    <exams>
        <exam>77</exam>
        <exam>68</exam>
        <exam>49</exam>
        </exams>
    </student>
    <student id="2562">
    <name>Guy Wire</name>
    <quizzes>
        <quiz>15</quiz>
        <quiz>23</quiz>
    </quizzes>
    <projects>
        <project>33</project>
        <project>47</project>
        </projects>
    <exams>
        <exam>78</exam>
        <exam>86</exam>
        <exam>88</exam>
    </exams>
    </student>
    <student id="137745">
    <name>Barb Wire</name>
    <quizzes>
        <quiz>20</quiz>
        <quiz>25</quiz>
    </quizzes>
    <projects>
        <project>48</project>
        <project>60</project>
        </projects>
    <exams>
        <exam>38</exam>
        <exam>48</exam>
        <exam>66</exam>
    </exams>
    </student>
    </S_db>
<?xml version="1.0" encoding="UTF‑8"?>
<projects>
<student>
<name>Barb Wire</name>
<total>108</total>
</student>
<student>
<name>Guy Wire</name>
<total>80</total>
</student>
<student>
<name>Rusty Nail</name>
<total>96</total>
</student>
    <student>
   {for $i in (1 to 3) return
   <total> { for $a in /S_db
   let $s := sum($a/student[$i]/projects/project)
   let $name := $a/student[$i]/name
   return ($s)}
   </total>
   }
  </student>

铁丝网
108
拉线
80
生锈的钉子
96
我尝试按如下方式生成Xquery:

   <?xml version="1.0" encoding="UTF-8"?>

   <S_db>
    <student id="94811">
    <name>Rusty Nail</name>
    <quizzes>
        <quiz>16</quiz>
        <quiz>12</quiz>
    </quizzes>
    <projects>
        <project>44</project>
        <project>52</project>
    </projects>
    <exams>
        <exam>77</exam>
        <exam>68</exam>
        <exam>49</exam>
        </exams>
    </student>
    <student id="2562">
    <name>Guy Wire</name>
    <quizzes>
        <quiz>15</quiz>
        <quiz>23</quiz>
    </quizzes>
    <projects>
        <project>33</project>
        <project>47</project>
        </projects>
    <exams>
        <exam>78</exam>
        <exam>86</exam>
        <exam>88</exam>
    </exams>
    </student>
    <student id="137745">
    <name>Barb Wire</name>
    <quizzes>
        <quiz>20</quiz>
        <quiz>25</quiz>
    </quizzes>
    <projects>
        <project>48</project>
        <project>60</project>
        </projects>
    <exams>
        <exam>38</exam>
        <exam>48</exam>
        <exam>66</exam>
    </exams>
    </student>
    </S_db>
<?xml version="1.0" encoding="UTF‑8"?>
<projects>
<student>
<name>Barb Wire</name>
<total>108</total>
</student>
<student>
<name>Guy Wire</name>
<total>80</total>
</student>
<student>
<name>Rusty Nail</name>
<total>96</total>
</student>
    <student>
   {for $i in (1 to 3) return
   <total> { for $a in /S_db
   let $s := sum($a/student[$i]/projects/project)
   let $name := $a/student[$i]/name
   return ($s)}
   </total>
   }
  </student>

{(1至3)报税表中的$i
{对于$a in/S_db
let$s:=sum($a/student[$i]/projects/project)
让$name:=$a/student[$i]/name
返回($s)}
}
我的当前输出:

<?xml version="1.0" encoding="UTF-8"?>
<student>
<total>96</total>
<total>80</total>
<total>108</total>
</student>

96
80
108
我不知道如何用相应的total标签来获取名称标签。
我已将特定学生的name元素存储在name变量中,这是一种可能的方法:

<projects>
{
    for $s in /S_db/student
    return 
    <student>
    {
        $s/name,
        <total>{sum($s/projects/project)}</total>
    }
    </student>
}
</projects>
<?xml version="1.0" encoding="UTF-8"?>
<projects>
   <student>
      <name>Rusty Nail</name>
      <total>96</total>
   </student>
   <student>
      <name>Guy Wire</name>
      <total>80</total>
   </student>
   <student>
      <name>Barb Wire</name>
      <total>108</total>
   </student>
</projects>

你能在这里发布当前输出吗?错误-路径表达式中意外的标记“{”尝试以下操作:
{for$i in(1到3)return{for$a in/Súdb let$name:=$a/student[$i]/name return($name)}{for$i in(1到3)return{for$a in/Súdb let$S:=sum($a/student[$i]/projects/project)let$name:=$a/student[$i]/name return($s)}
@rishiIt生成的输出如下:首先是学生的所有姓名,然后是total元素,但我需要其他输出,如:first name,然后是相应的total。请尝试生成这样的输出。@ThirisanguERROR-应为“}”,找到“{@Thirisangu”