Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/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
Xpath Xquery递归_Xpath_Xquery - Fatal编程技术网

Xpath Xquery递归

Xpath Xquery递归,xpath,xquery,Xpath,Xquery,我有一个关于Xpath的问题,我对Xpath很有经验。我正在做一个作业,我应该反转所有元素,这样音乐标签内的子元素就变成属性,属性就变成子元素 使用Xpath可以做到这一点吗?我应该如何做到?还是编写XML文件的DTD并在Xquery中编写解决方案更好 我的XML如下所示: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <music> <song genre="rocknroll" album="1

我有一个关于Xpath的问题,我对Xpath很有经验。我正在做一个作业,我应该反转所有元素,这样音乐标签内的子元素就变成属性,属性就变成子元素

使用Xpath可以做到这一点吗?我应该如何做到?还是编写XML文件的DTD并在Xquery中编写解决方案更好

我的XML如下所示:

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

<song genre="rocknroll" album="1134" artist="249" id="11992"><name>The Sound of Silence</name><nr>1</nr></song>
<song genre="rocknroll" album="4329" artist="932" id="34311"><name>Material Girl</name><nr>2</nr></song>
<song genre="hardrock" album="5293" artist="1167" id="54312"><name>Paradise City</name><nr>1</nr></song>
<song genre="classic" album="7002" artist="156" id="78340"><name>La Primavera</name><nr>1</nr></song>

<artist id="249" isband="yes">Simon and Garfunkel</artist>
<artist id="932" isband="no">Madonna</artist>
<artist id="1167" isband="yes">Guns N'Roses</artist>
<artist id="156" isband="no">Antonio Vivaldi</artist>

<album issued="1964" id="1134" label="Columbia Records">Wednesday Morning, 3 AM</album>
<album issued="1984" id="4392" label="Sire Records">Like A Virgin</album>
<album issued="1988" id="5293" label="Geffen Records">Appetite for Destruction</album>
<album issued="2004" id="7002" label="Naxos Records" performers="Wiener Philharmoniker">Le Quattro Stagioni</album>

</music>

沉默的声音
材料围带2
天堂城1
拉普里马维拉1
西蒙与加芬克尔
麦当娜
枪与玫瑰
安东尼奥·维瓦尔第
星期三上午3点
像个处女
破坏欲
斯塔吉奥尼酒店

提前感谢您的帮助。

XPath只能选择输入树中的节点,或者计算新的原子值(如字符串和数字)。它无法构造新树。为此,您需要XSLT或XQuery


出于其他原因,编写DTD可能会很有用,但它不会使生成用于此问题的所需XSLT或XQuery代码变得更容易。

XPath只能选择输入树中的节点,或计算新的原子值(如字符串和数字)。它无法构造新树。为此,您需要XSLT或XQuery


出于其他原因,编写DTD可能会很有用,但它不会使生成此问题所需的XSLT或XQuery代码变得更容易。

能否添加预期结果?能否添加预期结果?