[R] XML et SVG et namespace difficultés

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
FlecheBleu
Niveau 1
Niveau 1
Messages : 2
Enregistré le : sam. 17 oct. 2020 08:56
Status : Hors ligne

[R] XML et SVG et namespace difficultés

#1

Message par FlecheBleu »

Bonjour la Communauté,

Je bloque sur cette histoire de namespace , je pense !!

Je voudrais lire un fichier XML qui contient du balisage SVG.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.2" width="149.2mm" height="211.7mm" viewBox="0 0 14920 21170" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
 <defs>...</svg>
J'ai ce bout de code pour vérifier la prise en compte du fichier:
$oXML = ObjCreate('Msxml2.DOMDocument.6.0')

; Setting File IN/OUT

$Fichierin="e:\in.svg"
$Fichierout= StringReplace($Fichierin,".","-maj.")

; Calling  XML File

$oXML.load($Fichierin)
$oXML.setProperty("SelectionLanguage", "XPath")
$strNameSpc = "xmlns:svg='http://www.w3.org/2000/svg'"
$oXML.setProperty("SelectionNamespaces", $strNameSpc)


$oRoot = $oXML.selectSingleNode("//svg:defs")

ConsoleWrite("$oRoot.xml=[" & $oRoot.xml  & "]" & @CRLF)
Résultat => vide.

Par contre, si je supprime l’entête du fichier SVG comme ceci:

<svg version="1.2" width="149.2mm" height="211.7mm" viewBox="0 0 14920 21170" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
 <defs>... </svg>

C'est ok j'ai bien le fichier XML qui peut être utilisé dans Autoit.

Auriez-vous des pistes de recherche ?

Merci par avance ;-)
Modifié en dernier par FlecheBleu le dim. 18 oct. 2020 05:11, modifié 1 fois.
FlecheBleu
Niveau 1
Niveau 1
Messages : 2
Enregistré le : sam. 17 oct. 2020 08:56
Status : Hors ligne

Re: XML et SVG et namespace difficultés  

#2

Message par FlecheBleu »

Résolu :

https://dev.w3.org/SVG/profiles/2.0/publish/intro.html

Note en marge :

Malheureusement, les DTD SVG sont à l'origine de tant de problèmes que le groupe de travail SVG a décidé de ne pas en rédiger une pour la prochaine norme SVG 1.2. En fait, les membres du groupe de travail SVG disent même aux gens de ne pas utiliser de déclaration DOCTYPE dans les documents SVG 1.0 et 1.1. Au lieu de cela, il faut toujours inclure les attributs "version" et "baseProfile" sur la balise racine <svg> et leur attribuer des valeurs appropriées.

donc un s'impose un :
_FileWriteToLine($Fichierin, 2, "<!--DOCTYPE REMOVED-->", 1)
Merci à tous ;-)
Répondre