【发布时间】:2019-07-02 15:06:47
【问题描述】:
我有如下这样的字符串/xml 标记。请看下面的代码...
<filterCriteriaRow>
<filterCriteriaItem>
<attributeName>abcd</attributeName>
<columnName>SEGMENT3</columnName>
<operator>EQUALTO</operator>
<conjunction>OR</conjunction>
<valueDataType>STRING</valueDataType>
<value>000000</value>
</filterCriteriaItem>
<filterCriteriaItem>
<attributeName>abcd</attributeName>
<columnName>SEGMENT3</columnName>
<operator>BETWEEN</operator>
<conjunction>OR</conjunction>
<valueDataType>STRING</valueDataType>
<value>101001</value>
<value>503099</value>
</filterCriteriaItem>
<filterCriteriaItem>
<attributeName>abcd</attributeName>
<columnName>SEGMENT3</columnName>
<operator>EQUALTO</operator>
<conjunction>OR</conjunction>
<valueDataType>STRING</valueDataType>
<value>000000</value>
</filterCriteriaItem>
<filterCriteriaItem>
<attributeName>abcd</attributeName>
<columnName>SEGMENT3</columnName>
<operator>BETWEEN</operator>
<conjunction>OR</conjunction>
<valueDataType>STRING</valueDataType>
<value>101001</value>
<value>503099</value>
</filterCriteriaItem>
<conjunction>AND</conjunction>
</filterCriteriaRow>
我想操纵那个字符串变成这样:
<filterCriteriaRow>
<filterCriteriaItem>
<attributeName>abcd</attributeName>
<columnName>SEGMENT3</columnName>
<operator>EQUALTO</operator>
<conjunction>OR</conjunction>
<valueDataType>STRING</valueDataType>
<value>000000</value>
</filterCriteriaItem>
<filterCriteriaItem>
<attributeName>abcd</attributeName>
<columnName>SEGMENT3</columnName>
<operator>BETWEEN</operator>
<conjunction>OR</conjunction>
<valueDataType>STRING</valueDataType>
<value>101001</value>
<value2>503099</value2>
</filterCriteriaItem>
<filterCriteriaItem>
<attributeName>abcd</attributeName>
<columnName>SEGMENT3</columnName>
<operator>EQUALTO</operator>
<conjunction>OR</conjunction>
<valueDataType>STRING</valueDataType>
<value>000000</value>
</filterCriteriaItem>
<filterCriteriaItem>
<attributeName>abcd</attributeName>
<columnName>SEGMENT3</columnName>
<operator>BETWEEN</operator>
<conjunction>OR</conjunction>
<valueDataType>STRING</valueDataType>
<value>101001</value>
<value2>503099</value2>
</filterCriteriaItem>
<conjunction>AND</conjunction>
</filterCriteriaRow>
如您所见,一个父标签中有一个双标签列“值” 我想创建第一个值标签成为“值”,但第二个值标签成为“value2”
如何使用 regexp_replace 操作该字符串?
请帮忙
【问题讨论】:
-
你用什么编程语言编写代码?
-
Oracle PLSQL @AritroSen
-
'value' 标签总是在 'filterCriteriaItem' 标签内?它也可以有多次出现(我的意思是超过2次)?
-
是的,值标签始终在 filterCriteriaItem 标签中,并且值标签最多出现 2 个 @AritroSen
-
Obligatory link 关于尝试使用正则表达式而不是使用 DOM 解析器来解析 [X]HTML 是徒劳的。
标签: regex xml oracle plsql regexp-replace