De quoi ai-je besoin pour changer de sorte que le nœud Name sous FieldRef soit un attribut de FieldRef, et non un nœud enfant?Comment puis-je faire en sorte qu'un nœud de valeur soit déplacé pour être un attribut de son nœud parent?
génère actuellement le Suds savon suivant:
<ns0:query>
<ns0:Where>
<ns0:Eq>
<ns0:FieldRef>
<ns0:Name>_ows_ID</ns0:Name>
</ns0:FieldRef>
<ns0:Value>66</ns0:Value>
</ns0:Eq>
</ns0:Where>
</ns0:query>
Ce que je dois est le suivant:
<ns0:query>
<ns0:Where>
<ns0:Eq>
<ns0:FieldRef Name="_ows_ID">
</ns0:FieldRef>
<ns0:Value>66</ns0:Value>
</ns0:Eq>
</ns0:Where>
</ns0:query>
La première structure xml est générée par suds à partir du code ci-dessous.
q = c.factory.create('GetListItems.query')
q['Where']=InstFactory.object('Where')
q['Where']['Eq']=InstFactory.object('Eq')
q['Where']['Eq']['FieldRef']=InstFactory.object('FieldRef')
q['Where']['Eq']['FieldRef'].Name='_ows_ID'
q['Where']['Eq']['Value']='66'
et print(q)
résultats dans
(query){
Where =
(Where){
Eq =
(Eq){
FieldRef =
(FieldRef){
Name = "_ows_ID"
}
Value = "66"
}
}
}
Voici le code qui fait l'appel WS qui crée la demande de savon
c = client.Client(url='https://community.site.edu/_vti_bin/Lists.asmx?WSDL',
transport=WindowsHttpAuthenticated(username='domain\user',
password='password')
)
ll= c.service.GetListItems(listName="{BD59F6D9-AB4B-474D-BCC7-E4B4BEA7EB27}",
viewName="{407A6AB9-97CF-4E1F-8544-7DD67CEA997B}",
query=q
)
si Quelle est exactement la question? Vous ne pouvez pas obtenir le premier à ressembler à la seconde? – Jack
@Jack Que dois-je changer pour que le nœud Name sous FieldRef soit un attribut de FieldRef, et non un nœud enfant? –