В настоящее время я пытаюсь выяснить, как извлечь некоторые значения с помощью plsql из значения xml CLOB, которое хранится в моей базе данных.
Мое значение CLOB выглядит следующим образом:
<map>
<entry>
<string>HeaderOne</string>
<string>
<linked-hash-map>
<entry>
<string>ID</string>
<string>81</string>
</entry>
<entry>
<string>Name</string>
<string>John</string>
</entry>
<entry>
<string>SecondName</string>
<string>Smith</string>
</entry>
<entry>
<string>Age</string>
<string>15</string>
</entry>
</linked-hash-map>
</string>
</entry>
<entry>
<string>HeaderTwo</string>
<string>
<linked-hash-map>
<entry>
<string>ID</string>
<string>81</string>
</entry>
<entry>
<string>ZIP</string>
<string>99999</string>
</entry>
<entry>
<string>Gender</string>
<string>M</string>
</entry>
</linked-hash-map>
</string>
</entry>
</map>
Я пробовал использовать метод EXTRAC (xmltype (myclob), как описано здесь: Извлечь данные из XML Clob с помощью SQL из Oracle Database
Однако в моем случае это не сработает, потому что тег <string>
не включает идентификатор, такой как «имя» или «ключ», а вместо этого перечисляет другую запись <string>
над фактическим значением. Т.е. <string>ID</string>
- это параметр, поскольку обычно используется <string name='ID'>81</string>
, где «81» в данном случае - это фактическое значение, которое я хочу извлечь.
Параметры могут быть перечислены в xml в любом порядке, однако я знаю имя из параметра, который хочу извлечь. Итак, мой вопрос: есть ли способ извлечь, например, значение из записи <string>Name</string>
(в данном случае «Джон», однако это может быть любое значение)
<string>
элементов внутри<entry>
будет определять, является ли это именем атрибута или значением? - person ruudvan   schedule 31.03.2016