嗨,我有一个像这样的xml:
<ns1:books><ns2:book category="WEB"><ns3:title lang="en">Learning XML</ns3:title>
<ns3:author>Erik T. Ray</ns3:author><ns3:year>2003</ns3:year><ns3:price>39.95</price>
使用Saxon xquery我想删除ns3:author元素,任何人都可以告诉我该怎么办?
我知道有一个fn:remove(..)方法,但我不想使用它,因为它需要一个整数作为第二个参数
非常感谢任何完整的代码
另外 与撒克逊人我面临的错误如
引起:net.sf.saxon.trans.StaticError:#... nt-node()external中的XQuery语法错误;复制$ temp#: 超出查询结束的意外标记“$”
我使用了xml
声明名称空间soapenv =“http://www.w3.org/2003/05/soap-envelope”; declare namespace reg =“http://www.mycompany.com/internal/xsd/registrationservice”; declare namespace reg1 =“http://www.mycompany.com/internal/xsd/registrationtypes”;
declare variable $RegistrationServiceRequest := <reg:RegistrationServiceRequest><reg1:RegistrationAttributes> <reg1:Username>fdf</reg1:Username><reg1:Password>passwdfdford1</reg1:Password> <reg1:Title>Mdfdfr</reg1:Title><reg1:FirstName>fdsfdsfsd</reg1:FirstName>
</reg1:RegistrationAttributes><reg1:AutoLogin> <reg1:AutoLogin1>trtrtrt</reg1:AutoLogin1></reg1:AutoLogin>
</reg:RegistrationServiceRequest>;
copy $temp := $RegistrationServiceRequest
modify delete node $temp/reg1:AutoLogin
return $temp
但是当我尝试使用zorba时,它工作正常,唯一的问题是撒克逊和错误是在副本行
知道如何解决这个问题吗?
由于 小号
答案 0 :(得分:2)
如果您想对文档进行少量更改,XQuery不是您的最佳选择。您可以使用XQuery更新执行此操作,也可以使用XSLT执行此操作。单独使用XQuery是可行的,但非常麻烦。
答案 1 :(得分:0)
您可以使用XQuery Update执行此操作:
copy $n := $data modify delete node $n/ns2:book/ns3:author return $n
您可以在http://www.zorba-xquery.com/html/demo#JTJCK3mGQJgLav/2uOtgldoTYoM=
上试用此示例或者使用XQuery Scripting删除元素:
delete node $data/ns2:book/ns3:author;
$data
您可以在http://www.zorba-xquery.com/html/demo#QEuf9N5OLfD87WarBscHKrRrwm0=
上试用此示例