Я пытаюсь установить #string в значение, имеющее такое же регулярное выражение в карате, как показано ниже: У меня есть образецXML:
<Addresses>
<Address Id = "AD1">
<StreetNum>0001</StreetNum>
</Address>
<Address Id = "BR9">
<StreetNum>0002</StreetNum>
</Address>
...
</Addresses>
В приведенном выше примере xml я установлю #string в значение, имеющее такое же регулярное выражение, как показано ниже:
* string temp = sampleXML
* xml report = temp.replaceAll('<Address Id = "#regex [A-Z0-9]{3}">', '<Address Id = "#string">')
Но это не работает, пожалуйста, помогите мне, если вы знаете, как установить #string в значение, имеющее такое же регулярное выражение в карате? Спасибо!
Мой ожидаемый результат как:
<Addresses>
<Address Id = "#string">
<StreetNum>0001</StreetNum>
</Address>
<Address Id = "#string">
<StreetNum>0002</StreetNum>
</Address>
...
</Addresses>
Это сложнее, чем я думал, вы должны использовать регулярные выражения в JavaScript:
* text payload =
"""
<Addresses>
<Address Id = "AD1">
<StreetNum>0001</StreetNum>
</Address>
<Address Id = "BR9">
<StreetNum>0002</StreetNum>
</Address>
</Addresses>
"""
* def temp = payload.replaceAll(/Id = "[^"]+"/g, 'Id = "#string"')
* print temp
Для более сложных потребностей у вас также есть возможность вызова кода Java: https://github.com/karatelabs/karate#calling-java
Да, это решило мою проблему. Спасибо Петру за помощь!