PLSQL valeur lue à partir de XML?
J'ai une chaîne de code XML, je veux extraire une valeur en PL/SQL dans une variable.
Le XML est très simple et ne sera pas différente:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<SOAProxyResponse xmlns="http://tempuri.org/">
<SOAProxyResult>
There is 23142 Files!
</SOAProxyResult>
</SOAProxyResponse>
</s:Body>
</s:Envelope
Comment je peux obtenir la valeur "Il est 23142 Fichiers!" dans l'exemple ci-dessus dans une variable?
OriginalL'auteur Data-Base | 2011-02-16
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
EXTRACTVALUE
fonction pour obtenir cette valeur. Cette fonction prend deux ou trois paramètres:Dans la requête ci-dessous, j'ai pris le XML que vous avez présentés ci-dessus comme une chaîne de caractères et ont créé une XMLTYPE objet à partir d'elle. J'utilise ensuite
EXTRACTVALUE
pour obtenir la valeur que vous avez demandé:L'expression XPath
//SOAProxyResult
se contente de tous lesSOAProxyResult
éléments dans le document. Le troisième argument deEXTRACTVALUE
lie l'espace de noms par défaut pourhttp://tempuri.org/
. Cela est nécessaire parce que laSOAProxyResult
élément dans votre document XML est dans cet espace de noms.Si j'exécute cette requête, j'obtiens le résultat suivant:
À partir d'ici, il devrait être une simple modification de mettre le résultat de cette requête dans une variable.
OriginalL'auteur Luke Woodward
Il y a un bon article dans l'Oracle Magazine a tout à l'arrière - ce qui peut vous aider:
http://www.oracle.com/oramag/oracle/01-jul/o41xml.html
Une autre chose que nous utilisons assez souvent ici, c'est le XMLType API, mais bien sûr cela dépend de la façon dont vous êtes le stockage /la tenue de vos données XML:
http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96616/arxml24.htm
Je ne peux pas trouver un moyen simple de se contenter de lire ces valeur!
Sa parce qu'il n'est pas aussi simple que vous le souhaitez!
OriginalL'auteur diagonalbatman