我使用的 XML 有数百万行。
<trade idPosition="E56F58837T6827J1173K927479">
<currency>BTCUSD</currency>
<lotUSD>100000</lot>
<typeOfContract>Futures</typeOfContract>
</trade>
<trade idPosition="S28L16487Q9127J7592O836105">
<currency>ETHUSD</currency>
<lotUSD>1000</lot>
<typeOfContract>CFD</typeOfContract>
</trade>
<trade idPosition="B11F00000Z1547A1461H167729">
<currency>SOLUSD</currency>
<lotUSD>1000</lot>
<typeOfContract>Futures</typeOfContract>
</trade>
我想将
<trade>
的所有节点替换为 void (""
) 除了具有 typeOfContract
的节点,将其替换为
CFD
值以获得:
<trade idPosition="S28L16487Q9127J7592O836105">
<currency>ETHUSD</currency>
<lotUSD>1000</lot>
<typeOfContract>CFD</typeOfContract>
</trade>
我试过了
<trade guid=".*?">(?:(?!</?trade>).)*>CFD<.*?</trade>
但如果我将其放入搜索框中,然后将“”放入替换框中,则不起作用,并且会删除太多交易头寸...
如果所有节点共享您发布的结构,则以下内容应该可以工作(尽管不是很优雅):
<trade .+>\r\n(.+\r\n){2}\h+<typeOfContract>(?!CFD)[^ ]*</trade>\r\n
我很难匹配任何字符串,但
CFD
和这个答案帮助了我。希望这也能帮助你!