我尝试使用视图从配置单元表中单个列中的大型xml字符串中提取字符串(值)。我需要获取公司id、销售ind和结帐ind的相关foo\u字符串值。
<Message>
<Header>
<FOO_STRING>
<FOO_STRING_NAME>COMPANY_ID</FOO_STRING_NAME>
<FOO_STRING_VALUE>44-1235</FOO_STRING_VALUE>
</FOO_STRING>
<FOO_STRING>
<FOO_STRING_NAME>SALE_IND</FOO_STRING_NAME>
<FOO_STRING_VALUE>Y</FOO_STRING_VALUE>
</FOO_STRING>
<FOO_STRING>
<FOO_STRING_NAME>CLOSING_IND</FOO_STRING_NAME>
<FOO_STRING_VALUE>Y</FOO_STRING_VALUE>
</FOO_STRING>
</Header>
</Message>
xml文件最多可以有50个“foo\u字符串”,并且不能保证它们的顺序,因此我不能使用xpath,除非我为每个名称/值对调用了50个xpath\u字符串并在以后进行匹配。我像这样使用xpath。。。。。
xpath_string(xml_txt, '/Message/Header/FOO_STRING[1]/FOO_STRING_VALUE') AS String_Val_1
xpath_string(xml_txt, '/Message/Header/FOO_STRING[2]/FOO_STRING_VALUE') AS String_Val_2
xpath_string(xml_txt, '/Message/Header/FOO_STRING[3]/FOO_STRING_VALUE') AS String_Val_3
但是,如果顺序发生变化,它就不起作用。我想知道是否有一个快速的方法找到 FOO_STRING_NAME
需要,并使用 regexp_extract()
或者其他方式?我不熟悉regex,所以任何帮助或建议都会很有帮助,谢谢
1条答案
按热度按时间emeijp431#
“如果订单发生变化,它就不能工作”
那就不要用位置。