OpenSSL VPN Serveurs de messagerie |
Libxml2/Libxml2-perlProcécure de compilation et d'intégration du wrapper libxml2 pour Perl. Si vous ne disposez pas du compilateur nmake sur votre poste la page http://johnbokma.com/perl/make-for-windows.html vous apportera une aide précieuse. 1. Téléchargement et décompression de XML::LibXML::Common2. Générer le makefile spécifique à WindowsD:\dev\perl\XML-LibXML-Common-0.13>Makefile.PL LIBS="D:\libxml2-2.6.23\win32\bin.msvc D:\zlib123" INC="-ID:\libxml2-2.6.23\include" Si vous n'indiquez pas les chemins d'accès aux librairies, vous obtiendrez ces messsages 3. Initialiser les variables d'environnement MS Visual C++ (Vcvars32.bat)4. Compiler les librairiesD:\dev\perl\XML-LibXML-Common-0.13>nmake cp Common.pm blib\lib\XML\LibXML\Common.pm C:\Perl\bin\perl.exe C:\Perl\lib\ExtUtils/xsubpp -typemap C:\Perl\lib\ExtUtils\typemap -typemap typemap .../... 5. Tester la nouvelle librairie compiléeD:\dev\perl\XML-LibXML-Common-0.13>nmake test Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. C:\Perl\bin\perl.exe "-Iblib\lib" "-Iblib\arch" test.pl 1..8 Problème de dépendance 6. InstallerD:\dev\perl\XML-LibXML-Common-0.13>nmake install 7. Faire la même chose avecdans l'ordre : 8. Un exempleUne fois les librairies installées, le code ci-dessous #!/usr/bin/perl -w # use XML::LibXML; use IO::File; my $doc = XML::LibXML::Document->createDocument("1.0","UTF-8"); my $root = $doc->createElement("foo" ); my $attr = $doc->createAttribute( "bar", "hello world" ); $root->setAttributeNodeNS( $attr ); $doc->setDocumentElement( $root ); print dumpvar($doc->toString(0)); sub dumpvar{ my $var = shift(@_); #print "length:".length($var)."\r\n"; for($i = 0; $i < length($var); ) { printf("%04xh: ",$i); $string=""; for ($a = $i; $a < $i+16; $a++) { if($a < length($var)){ $p = ord(substr($var, $a, 1)); printf("%02x ",$p); if($p>31){ $string=$string.chr($p); } else{ $string=$string."."; } }else{ printf(" "); } } print " ".$string."\r\n"; $i=$a; } print "\n\r"; } Donnera cette sortie 0000h: 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 <?xml version="1 0010h: 2e 30 22 20 65 6e 63 6f 64 69 6e 67 3d 22 55 54 .0" encoding="UT 0020h: 46 2d 38 22 3f 3e 0a 3c 66 6f 6f 20 62 61 72 3d F-8"?>.<foo bar= 0030h: 22 68 65 6c 6c 6f 20 77 6f 72 6c 64 22 2f 3e 0a "hello world"/>. <?xml version="1.0" encoding="UTF-8"?> <foo bar="hello world"/>
|