我有我的PLSQL過程中存儲在CLOB變量下面的XML文檔:提取XML基於子元素值
<soap:Envelope>
<soap:Body>
<ns2:getAllIssueHistoriesResponse>
<return>
<eventDate>2013-08-02T11:45:58.013+02:00</eventDate>
<eventText>Test</eventText>
<issueEventType>
<id>10</id>
<value>Replied</value>
</issueEventType>
</return>
<return>...</return>
<return>...</return>
</ns2:getAllIssueHistoriesResponse>
</soap:Body>
</soap:Envelope>
我想提取都返回節點和10 issueEventType值。
我已經習慣了下面的代碼,試圖做到這一點,其中p_xml_content是包含我的CLOB XML:
l_xml_parser := '<?xml version="1.0" encoding="UTF-8"?><results>';
l_xml_parser := l_xml_parser ||(xmltype(p_xml_content).extract('//return/issueEventType/[id=10]').getclobval());
l_xml_parser := l_xml_parser ||'</results>';
這不返回任何儘管在xml文檔中肯定是一個值爲10的issueEventType。返回
l_xml_parser := l_xml_parser ||(xmltype(p_xml_content).extract('//return/issueEventType[id=''10'']').getclobval());
而且
l_xml_parser := l_xml_parser ||(xmltype(p_xml_content).extract('//return/issueEventType/[@id=''10'']').getclobval());
,但仍然沒有:
我已經與多種變化,如試過這樣。
任何想法?
您可以稍微簡化XPath:'// return [issueEventType/id = 10]'也應該可以工作。 –