แทนที่โหนดใน basex xml โดยใช้ xquery

ฉันกำลังพยายามแทนที่โหนดใน xml โดยใช้รหัสต่อไปนี้

String xquery_replace="xquery replace node CIDEM/ShopFloor/foo[/CIDEM/ShopFloor/ShopFloorID=1] with "+new_gbXML;
session.execute(xquery_replace);

ดังนั้นฉันต้องการตัวอย่างในการเปลี่ยนโหนด foo ของโหนด ShopFloor แรก

xml มีเนื้อหาดังต่อไปนี้

<CIDEM>
    <ShopFloor>
        <ShopFloorID>1</ShopFloorID>
        <foo bar="2">
            <baz>there</baz>
        </foo>
    </ShopFloor>
  <ShopFloor>
      <ShopFloorID>2</ShopFloorID>
      <foo bar="5">
          <baz>there</baz>
      </foo>
  </ShopFloor>
</CIDEM>

และฉันได้รับข้อผิดพลาดต่อไปนี้ "[XUTY0008] องค์ประกอบเดียว ข้อความ คุณลักษณะ ความคิดเห็น หรือ pi คาดว่าจะเป็นเป้าหมายแทนที่"

มีความคิดว่าทำไม?


person vagelis    schedule 19.08.2015    source แหล่งที่มา
comment
เส้นทางไม่ถูกต้อง มันควรจะเป็นเช่น CIDEM/ShopFloor[ShopFloorID="1"]/foo เมื่อระบุถึงโหนด foo ของ FIRST ShopFloorID   -  person John    schedule 20.08.2015


คำตอบ (1)


ข้อความแสดงข้อผิดพลาดกำลังบอกว่ามีอะไรผิดปกติ

"[XUTY0008] องค์ประกอบเดียว ข้อความ คุณลักษณะ ความคิดเห็น หรือ pi คาดว่าจะเป็นเป้าหมายแทนที่"

หมายความว่าคาดว่าจะมีองค์ประกอบหรือข้อความหรือคุณลักษณะ... เป็นเป้าหมายที่จะถูกแทนที่ แต่เส้นทางในการสืบค้นของคุณไม่มีที่ไหนเลย อ่านความคิดเห็นของฉันสำหรับเส้นทางที่เหมาะสม

สำหรับตัวอย่าง: หากคุณต้องการแทนที่ค่าของแอตทริบิวต์ bar สำหรับ ShopFloorID ด้วยค่า 1 ดังนั้นเส้นทางควรเป็น CIDEM/ShopFloor[ShopFlorrID="1"]/foo/@bar

person John    schedule 20.08.2015