
{"id":758,"date":"2009-09-16T09:53:19","date_gmt":"2009-09-16T08:53:19","guid":{"rendered":"http:\/\/dasini.net\/blog\/?p=758"},"modified":"2009-10-01T09:20:19","modified_gmt":"2009-10-01T08:20:19","slug":"utiliser-xml-avec-mysql-5-1-part-45","status":"publish","type":"post","link":"https:\/\/dasini.net\/blog\/2009\/09\/16\/utiliser-xml-avec-mysql-5-1-part-45\/","title":{"rendered":"Utiliser XML avec MySQL 5.1 (part 4\/5)"},"content":{"rendered":"<p style=\"margin-bottom: 0cm;\">(<a title=\"Utiliser XML avec MySQL 5.1 (part 3\/5)\" href=\"http:\/\/dasini.net\/blog\/2009\/08\/10\/utiliser-xml-avec-mysql-5-1-part-35\/\">&lt;- pr\u00e9c\u00e9dent<\/a>)<\/p>\n<p><!-- \t\t@page { margin: 2cm } \t\tP { margin-bottom: 0.21cm } \t\tH2 { margin-bottom: 0.21cm } \t\tH2.western { font-family: \"Arial\", sans-serif; font-size: 14pt; font-style: italic } \t\tH2.cjk { font-family: \"MS Mincho\"; font-size: 14pt; font-style: italic } \t\tH2.ctl { font-family: \"Tahoma\"; font-size: 14pt; font-style: italic } \t\tH4 { margin-bottom: 0.21cm } \t\tH4.western { font-family: \"Arial\", sans-serif; font-size: 11pt; font-style: italic } \t\tH4.cjk { font-family: \"MS Mincho\"; font-size: 11pt; font-style: italic } \t\tH4.ctl { font-family: \"Tahoma\"; font-size: 11pt; font-style: italic } \t\tTD P { margin-bottom: 0.21cm } --><\/p>\n<p><!-- \t\t@page { margin: 2cm } \t\tP { margin-bottom: 0.21cm } \t\tH2 { margin-bottom: 0.21cm } \t\tH2.western { font-family: \"Arial\", sans-serif; font-size: 14pt; font-style: italic } \t\tH2.cjk { font-family: \"MS Mincho\"; font-size: 14pt; font-style: italic } \t\tH2.ctl { font-family: \"Tahoma\"; font-size: 14pt; font-style: italic } --><\/p>\n<h2>Les fonctionnalit\u00e9s XPath de MySQL 5<\/h2>\n<p style=\"margin-bottom: 0cm;\">MySQL 5 offre la possibilit\u00e9 de pouvoir ex\u00e9cuter des requ\u00eates <em>XPath<\/em> sur un flux XML, gr\u00e2ce \u00e0 la fonction <span style=\"text-decoration: none;\"><strong>extractValue()<\/strong><\/span>.<\/p>\n<p style=\"margin-bottom: 0cm;\">Le r\u00e9sultat r\u00e9cup\u00e9r\u00e9 est la concat\u00e9nation de la valeur textuelle de chacun des n\u0153uds trouv\u00e9s (chaque valeur \u00e9tant dissoci\u00e9e des autres par un espace blanc).<\/p>\n<p style=\"margin-bottom: 0cm;\">Comment r\u00e9cup\u00e9rer la valeur de l&rsquo;\u00e9l\u00e9ment racine d&rsquo;un flux XML ?<\/p>\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\"><span style=\"text-decoration: underline;\">Extraire des donn\u00e9es d&rsquo;une variable contenant du XML<\/span><\/p>\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm; text-decoration: none;\">\/*Contenu du fichier XML *\/<\/p>\n<p style=\"margin-bottom: 0cm; text-decoration: none;\">\n<pre style=\"margin-bottom: 0cm; text-decoration: none;\">shell&gt; cat formateur.xml<\/pre>\n<pre style=\"margin-bottom: 0cm; text-decoration: none;\">&lt;opensource&gt;<\/pre>\n<pre style=\"margin-bottom: 0cm; text-decoration: none;\">Les formateurs de l'\u00e9quipe sont :<\/pre>\n<pre style=\"margin-bottom: 0cm; text-decoration: none;\">&lt;formateur domaines=\"MySQL PHP\"&gt;<\/pre>\n<pre style=\"margin-bottom: 0cm; text-decoration: none;\">&lt;nom&gt;Dasini&lt;\/nom&gt;<\/pre>\n<pre style=\"margin-bottom: 0cm; text-decoration: none;\">&lt;prenom&gt;Olivier&lt;\/prenom&gt;<\/pre>\n<pre style=\"margin-bottom: 0cm; text-decoration: none;\">&lt;\/formateur&gt;<\/pre>\n<pre style=\"margin-bottom: 0cm; text-decoration: none;\">&lt;formateur domaines=\"PHP XML\"&gt;<\/pre>\n<pre style=\"margin-bottom: 0cm; text-decoration: none;\">&lt;nom&gt;Allard&lt;\/nom&gt;<\/pre>\n<pre style=\"margin-bottom: 0cm; text-decoration: none;\">&lt;prenom&gt;Fabien&lt;\/prenom&gt;<\/pre>\n<pre style=\"margin-bottom: 0cm; text-decoration: none;\">&lt;\/formateur&gt;<\/pre>\n<pre style=\"margin-bottom: 0cm; text-decoration: none;\">&lt;formateur domaines=\"Linux MySQL\"&gt;<\/pre>\n<pre style=\"margin-bottom: 0cm; text-decoration: none;\">&lt;nom&gt;Dumont&lt;\/nom&gt;<\/pre>\n<pre style=\"margin-bottom: 0cm; text-decoration: none;\">&lt;prenom&gt;Pierre&lt;\/prenom&gt;<\/pre>\n<pre style=\"margin-bottom: 0cm; text-decoration: none;\">&lt;\/formateur&gt;<\/pre>\n<pre style=\"margin-bottom: 0cm; text-decoration: none;\">et sont passionn\u00e9s par l'open source.<\/pre>\n<pre style=\"margin-bottom: 0cm; text-decoration: none;\">&lt;\/opensource&gt;<\/pre>\n<p style=\"margin-bottom: 0cm; text-decoration: none;\">\n<p style=\"margin-bottom: 0cm; text-decoration: none;\">\n<p style=\"margin-bottom: 0cm; text-decoration: none;\">\n<p style=\"margin-bottom: 0cm; text-decoration: none;\">\/* Initialisation de la variable @xml avec le contenu du fichier formateur.xml *\/<\/p>\n<pre style=\"margin-bottom: 0cm; text-decoration: none;\">mysql&gt; SET @xml = LOAD_FILE( '.\/formateur .xml');<\/pre>\n<p style=\"margin-bottom: 0cm; text-decoration: none;\">\n<p style=\"margin-bottom: 0cm; text-decoration: none;\">\n<p style=\"margin-bottom: 0cm; text-decoration: none;\">\/* R\u00e9cup\u00e9ration de la valeur de l&rsquo;\u00e9l\u00e9ment racine *\/<\/p>\n<pre style=\"margin-bottom: 0cm; text-decoration: none;\">mysql&gt; SELECT extractValue( @xml, '\/opensource')\\G<\/pre>\n<pre style=\"margin-bottom: 0cm; text-decoration: none;\">*************************** 1. row ***************************<\/pre>\n<pre style=\"margin-bottom: 0cm; text-decoration: none;\">extractValue( @xml, '\/opensource'):<\/pre>\n<p style=\"margin-bottom: 0cm; text-decoration: none;\">\n<p style=\"margin-bottom: 0cm; text-decoration: none;\">Les formateurs de l&rsquo;\u00e9quipe sont :<\/p>\n<p style=\"margin-bottom: 0cm; text-decoration: none;\">et sont passionn\u00e9s par l&rsquo;open source.<\/p>\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\">Comme vous pouvez le constater les \u00e9l\u00e9ments enfants de l&rsquo;\u00e9l\u00e9ment racine sont supprim\u00e9s de la s\u00e9lection : seul le contenu propre des \u00e9l\u00e9ments recherch\u00e9s est donc int\u00e9gr\u00e9 au r\u00e9sultat.<\/p>\n<p style=\"margin-bottom: 0cm;\">Autre exemple, on veut s\u00e9lectionner le deuxi\u00e8me formateur de notre flux XML, ainsi que les formateurs qui ont pour domaine de comp\u00e9tence MySQL:<\/p>\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\"><span style=\"text-decoration: underline;\">Extraire le deuxi\u00e8me formateur et les formateurs MySQL<\/span><\/p>\n<p style=\"margin-bottom: 0cm; text-decoration: none;\">\n<address style=\"margin-bottom: 0cm; text-decoration: none;\">mysql&gt; SELECT extractValue( @xml, &lsquo;\/opensource\/formateur[2]\/nom&rsquo;) AS Deuxieme, extractValue( @xml, &lsquo;\/opensource\/formateur[contains( @domaines, \u00ab\u00a0MySQL\u00a0\u00bb)]\/nom&rsquo;) AS MySQL;<\/address>\n<address style=\"margin-bottom: 0cm; text-decoration: none;\">+&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;+<\/address>\n<address style=\"margin-bottom: 0cm; text-decoration: none;\">| Deuxieme | MySQL         |<\/address>\n<address style=\"margin-bottom: 0cm; text-decoration: none;\">+&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;+<\/address>\n<address style=\"margin-bottom: 0cm; text-decoration: none;\">| Allard   | Dasini Dumont |<\/address>\n<address style=\"margin-bottom: 0cm; text-decoration: none;\">+&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;+<\/address>\n<p style=\"margin-bottom: 0cm; text-decoration: none;\">\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\">Comme vous avez pu le constater, <em>XPath<\/em> est \u00e9galement un langage d&rsquo;interrogation. Examinons d&rsquo;un peu plus pr\u00e8s sa syntaxe.<\/p>\n<p style=\"margin-bottom: 0cm;\">Une expression <em>XPath<\/em> repr\u00e9sente ce qui est appel\u00e9 un <em>chemin de localisation<\/em> (tr\u00e8s similaire au chemin permettant d&rsquo;identifier un fichier) dans lequel chaque n\u0153ud est s\u00e9par\u00e9 des autres avec un <em>\/<\/em>.<\/p>\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\">G\u00e9n\u00e9ralement, la recherche s&rsquo;effectue en fonction de deux types de n\u0153uds distincts :<\/p>\n<ul>\n<li>\n<p style=\"margin-bottom: 0cm;\">les n\u0153uds \u00e9l\u00e9ments, renseign\u00e9s \tpar leur nom,<\/p>\n<\/li>\n<li>\n<p style=\"margin-bottom: 0cm;\">les attributs, indiqu\u00e9s par un <span style=\"text-decoration: underline;\">@<\/span> accol\u00e9 \u00e0 leur nom.<\/p>\n<\/li>\n<\/ul>\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\">Ainsi l&rsquo;expression <span style=\"font-style: normal;\"><span style=\"text-decoration: none;\"><strong>formateur\/@domaines<\/strong><\/span><\/span> r\u00e9f\u00e8re l&rsquo;attribut appel\u00e9 <span style=\"font-style: normal;\"><span style=\"text-decoration: none;\"><strong>domaines<\/strong><\/span><\/span> des \u00e9l\u00e9ments nomm\u00e9s <em>formateur<\/em>.<\/p>\n<p style=\"margin-bottom: 0cm;\">Pour pouvoir filtrer plus finement les \u00e9l\u00e9ments, <em>XPath<\/em> dispose des <em>pr\u00e9dicats<\/em>.<\/p>\n<p style=\"margin-bottom: 0cm;\">Chacun de ces pr\u00e9dicats est sp\u00e9cifi\u00e9 dans une paire de crochets <span style=\"font-style: normal;\">[<\/span><em>expression<\/em><span style=\"font-style: normal;\">]<\/span>.<\/p>\n<p style=\"margin-bottom: 0cm;\">Une expression peut \u00eatre soit une simple \u00e9valuation, soit utiliser une (ou plusieurs) fonction(s).<\/p>\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\">Par exemple <span style=\"text-decoration: none;\"><strong>formateur[@domaines=\u00a0\u00bbLinux MySQL\u00a0\u00bb][contains( nom, \u00ab\u00a0Dumont\u00a0\u00bb)]\/prenom<\/strong><\/span> retrouve tous les pr\u00e9noms des formateurs qui ont pour domaines <em>Linux MySQL<\/em> et qui poss\u00e8dent un nom valant <span style=\"text-decoration: none;\"><strong>Dumont<\/strong><\/span>.<\/p>\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\">Les chemins de localisation utilis\u00e9s peuvent \u00eatre indiqu\u00e9s de fa\u00e7on absolue ou de fa\u00e7on relative. Dans ce deuxi\u00e8me cas, la recherche s&rsquo;effectue en fonction du n\u0153ud contexte.<\/p>\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\">Dans l&rsquo;expression pr\u00e9c\u00e9dente, l&rsquo;attribut <span style=\"text-decoration: none;\"><strong>domaines<\/strong><\/span> test\u00e9 est celui de l&rsquo;\u00e9l\u00e9ment <span style=\"text-decoration: none;\"><strong>formateur<\/strong><\/span><span style=\"text-decoration: none;\">.<\/span><\/p>\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\">Enfin, il est possible de se d\u00e9placer dans l&rsquo;arborescence (un <span style=\"text-decoration: underline;\">.<\/span> repr\u00e9sente le n\u0153ud courant, et <span style=\"text-decoration: underline;\">..<\/span> le n\u0153ud parent).<\/p>\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\">Ainsi <span style=\"text-decoration: none;\"><strong>formateur\/prenom[..\/@domaines=\u00a0\u00bbLinux MySQL\u00a0\u00bb][contains( ..\/nom, \u00ab\u00a0Dumont\u00a0\u00bb)]<\/strong><\/span> est \u00e9quivalente \u00e0 l&rsquo;expression pr\u00e9c\u00e9dente.<\/p>\n<p style=\"margin-bottom: 0cm;\">\n<p style=\"margin-bottom: 0cm;\"><em>(<a title=\"Utiliser XML avec MySQL 5.1 (part 5\/5)\" href=\"http:\/\/dasini.net\/blog\/2009\/10\/01\/utiliser-xml-avec-mysql-5-1-part-55\/\">\u00e0 suivre&#8230; utiliser XML avec MySQL 5.1 : <\/a><\/em><a title=\"Utiliser XML avec MySQL 5.1 (part 5\/5)\" href=\"http:\/\/dasini.net\/blog\/2009\/10\/01\/utiliser-xml-avec-mysql-5-1-part-55\/\">Extraire les donn\u00e9es d&rsquo;un flux XML stock\u00e9 en base<\/a><em>)<\/em><\/p>\n<p style=\"margin-bottom: 0cm;\">\n","protected":false},"excerpt":{"rendered":"<p>Les fonctionnalit\u00e9s XPath de MySQL 5<\/p>\n<p>MySQL 5 offre la possibilit\u00e9 de pouvoir ex\u00e9cuter des requ\u00eates XPath sur un flux XML, gr\u00e2ce \u00e0 la fonction extractValue().<\/p>\n<p>Le r\u00e9sultat r\u00e9cup\u00e9r\u00e9 est la concat\u00e9nation de la valeur textuelle de chacun des n\u0153uds trouv\u00e9s (chaque valeur \u00e9tant dissoci\u00e9e des autres par un espace blanc).<\/p>\n<p>Comment r\u00e9cup\u00e9rer la valeur de l&rsquo;\u00e9l\u00e9ment racine d&rsquo;un flux XML ?<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"footnotes":""},"categories":[8],"tags":[77,78],"class_list":["post-758","post","type-post","status-publish","format-standard","hentry","category-mysql","tag-xml","tag-xpath"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9LfWW-ce","jetpack-related-posts":[{"id":779,"url":"https:\/\/dasini.net\/blog\/2009\/10\/01\/utiliser-xml-avec-mysql-5-1-part-55\/","url_meta":{"origin":758,"position":0},"title":"Utiliser XML avec MySQL 5.1 (part 5\/5)","author":"Olivier DASINI","date":"1 octobre 2009","format":false,"excerpt":"Voil\u00e0 un petit panorama de l'utilisation des fonctionnalit\u00e9s XML de MySQL. Comme nous l'avons vu, g\u00e9n\u00e9rer le r\u00e9sultat d'une requ\u00eate au format XML reste tr\u00e8s simple avec le client texte mysql, idem pour la g\u00e9n\u00e9ration d'une sauvegarde (mysqldump). De plus, bien que n'\u00e9tant pas un base de donn\u00e9es XML, ont\u2026","rel":"","context":"Dans &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/dasini.net\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":713,"url":"https:\/\/dasini.net\/blog\/2009\/08\/10\/utiliser-xml-avec-mysql-5-1-part-35\/","url_meta":{"origin":758,"position":1},"title":"Utiliser XML avec MySQL 5.1 (part 3\/5)","author":"Olivier DASINI","date":"10 ao\u00fbt 2009","format":false,"excerpt":"Interroger un flux XML avec Xpath L'emploi de XML ne pr\u00e9senterait pas beaucoup d'int\u00e9r\u00eat sans la possibilit\u00e9 de pouvoir interroger sa structure pour acc\u00e9der \u00e0 une information particuli\u00e8re : le langage XPath r\u00e9pond \u00e0 cette attente et est (en partie du moins) aujourd'hui int\u00e9gr\u00e9 \u00e0 MySQL. Mais avant de voir\u2026","rel":"","context":"Dans &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/dasini.net\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":691,"url":"https:\/\/dasini.net\/blog\/2009\/07\/29\/utiliser-xml-avec-mysql-5-1-part-25\/","url_meta":{"origin":758,"position":2},"title":"Utiliser XML avec MySQL 5.1 (part 2\/5)","author":"Olivier DASINI","date":"29 juillet 2009","format":false,"excerpt":"Ins\u00e9rer du XML dans MySQL Un fichier XML, n'est finalement qu'un fichier contenant du texte et ins\u00e9rer du texte dans un SGBDR, est loin d'\u00eatre la chose la plus difficile. Une simple requ\u00eate INSERT fait l'affaire. Cela nous donne quelque chose comme ceci : INSERT INTO ma_table (champ_texte) VALUES ('...')","rel":"","context":"Dans &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/dasini.net\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":334,"url":"https:\/\/dasini.net\/blog\/2008\/12\/13\/les-nouveautes-de-mysql-51-part-45\/","url_meta":{"origin":758,"position":3},"title":"Les nouveaut\u00e9s de MySQL 5.1 &#8212; (part 4\/5)","author":"Olivier DASINI","date":"13 d\u00e9cembre 2008","format":false,"excerpt":"Le moteur de stockage CSV n'est pas une vraie nouveaut\u00e9. Il est disponible depuis MySQL 4.1.4 (MySQL 5.1 pour M.S. Windows). Sa particularit\u00e9 est de stocker les donn\u00e9es dans un fichier texte au format CSV (Comma Separated Values) o\u00f9 les donn\u00e9es sont s\u00e9par\u00e9es par une virgule. Les avantages sont multiples,\u2026","rel":"","context":"Dans &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/dasini.net\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":673,"url":"https:\/\/dasini.net\/blog\/2009\/07\/17\/utiliser-xml-avec-mysql-5-1-part-15\/","url_meta":{"origin":758,"position":4},"title":"Utiliser XML avec MySQL 5.1 (part 1\/5)","author":"Olivier DASINI","date":"17 juillet 2009","format":false,"excerpt":"MySQL avec son mod\u00e8le relationnel et XML avec son approche hi\u00e9rarchique ont en commun la vocation d'organiser et de structurer des ensembles de donn\u00e9es. En regardant de plus pr\u00e8s, ces technologies peuvent offrir des solutions compl\u00e9mentaires : * MySQL s'adapte \u00e0 merveille \u00e0 la gestion de syst\u00e8mes d'informations \u00e9ventuellement lourds\u2026","rel":"","context":"Dans &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/dasini.net\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":227,"url":"https:\/\/dasini.net\/blog\/2008\/11\/27\/mysql-server-5130-ga-release\/","url_meta":{"origin":758,"position":5},"title":"MySQL Server 5.1.30 GA release","author":"Olivier DASINI","date":"27 novembre 2008","format":false,"excerpt":"MySQL 5.1 est enfin disponible pour la production","rel":"","context":"Dans &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/dasini.net\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts\/758","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/comments?post=758"}],"version-history":[{"count":6,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts\/758\/revisions"}],"predecessor-version":[{"id":763,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts\/758\/revisions\/763"}],"wp:attachment":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/media?parent=758"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/categories?post=758"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/tags?post=758"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}