2017-03-21 3 views
2

Ich brauche Tag hinzufügen <sheet> innerhalb <form> mit Xpath. Ich habe versucht, unter dem Code:Hinzufügen Blatt-Tag innerhalb Form-Tag mit Xpath odoo 8

<xpath expr="//form[@string='Bank account']" position="inside"> 
    <sheet></sheet> 
</xpath> 

Das Blatt hinzugefügt, aber nach dem Formular-Tag.

enter image description here

, wie ich es tun kann?

+0

Ich denke Zeichenfolge ist in Xpath nicht gültig, bitte versuchen Sie mit dem Formular name.expr = "// form [@ name = 'Name Ihrer Form']" –

+0

Es gibt keinen Namen für dieses Formular-Tag. – KbiR

+0

Dann müssen Sie den Namen eines bestimmten Feldes aus dem Formular in Xpath geben und geben Sie Position vor oder nach dem, was immer Sie brauchen. –

Antwort

0

bitte versuchen Sie es

<xpath expr="//form" position="inside"> 
    <sheet></sheet> 
</xpath> 

oder

<xpath expr="//form/group[1]" position="before"> 
    <sheet></sheet> 
</xpath> 

wenn Sie in Form keine Gruppe-Tags gab

+0

Danke Burmese .. Aber es funktioniert nicht. – KbiR

+0

Dann geben Sie den tatsächlichen Code, antwortete ich nach dem Code in Ihrer Frage –

0

Wenn Sie position="inside" verwenden, was passiert, ist, dass das Blatt, das Sie ist einfügen als die beigefügten Letzter Artikel in Ihrem Formular. Sie brauchen das nicht, was Sie brauchen, ist, dass das Formular //form[@string='Bank account'] ein Blatt enthält und dieses Blatt alle untergeordneten Elemente des Formulars enthält.

Sehen Sie, wenn die XPaths unten Arbeit für Sie:

<xpath expr="//form[@string='Bank account']" position="inside"> 
    <sheet> 
    <xpath expr="//form[@string='Bank account']/[not(name()='sheet')]"/> 
    <xpath expr="//form[@string='Bank account']/[not(name()='sheet')]" position="replace"/> 
    </sheet> 
</xpath> 

Was ich hier zu tun ist:

1) Fügen Sie das Blatt in der Form

2) Wählen Sie alle Elemente in der form (neben dem Blatt, das ich gerade hinzugefügt habe und lege sie in das Blatt.

3) Um zu vermeiden, dass Elemente sowohl im Blatt und außerhalb, entferne ich die Außenseite.

+0

Könnten Sie dies erklären '/ [nicht (name() = 'Blatt')'. Die Felder kommen nicht in das Blatt. – KbiR