다음은 XML 구조입니다. 그 원래의 구조의 표본이 아니라 정확합니다.XQuery가 자식 노드를 삽입하지 않음
<Docs>
<Doc>
<Para>
<P n="1"><B>Constants : T</B>he value of pi is 3.14</P>
<P n="2">pi is a geometric term.</P>
</Para>
</Doc>
<Doc>
<Para>
<P n="1"><B>Constants : T</B>he value of g is 9.81 m/sqr of sec</P>
<P n="2">g is a acceleration due to gravity.</P>
</Para>
</Doc>
<Doc>
<Para>
<P n="1"><B>Constants : T</B>he value of c is 3.00 x 10 power 8 m/sec</P>
<P n="2">c is a speed of light in vacuum.</P>
</Para>
</Doc>
</Docs>
프로그래밍 방식으로 XML 파일을 생성했습니다. B
노드의 데이터는 Constant : T
이며, 여기서는 Constants :
이어야합니다. 필요한 변경 작업을 수행하기 위해 XQuery를 작성했지만 예상대로 작동하지 않습니다. 아래
for $x in doc('doc1')//Doc
where $x/Para/P[@n="1"]/B/text()="Constants : T"
return
let $p := $x/Para/P[@n="1"]
let $pText := concat("T", $p/text())
let $tag := <P n="1">{$pText}</P>
return
(
delete node $p,
insert node $tag as first into $x/Para,
insert node <B>Constants :</B> as first into $x/Para/P[@n="1"]
)
버전 - 2 (작은 달콤하지만 작업!)
let $b := <B> Constants :</B>
for $x in doc('doc1')//Doc/Para[P[@n="1"]/B/text()="Constants : T"]/P[@n="1"]
return
(
replace value of node $x with concat("T", $x/text()),
insert node $b/node() as first into $x
)
어느 쿼리가 <B>Constants : </B>
를 삽입한다. 아무도 이걸 도와 줄 수 없나요?