.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "XML::LibXML::PI 3" .TH XML::LibXML::PI 3 2023-07-25 "perl v5.38.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME XML::LibXML::PI \- XML::LibXML Processing Instructions .SH SYNOPSIS .IX Header "SYNOPSIS" .Vb 3 \& use XML::LibXML; \& # Only methods specific to Processing Instruction nodes are listed here, \& # see the XML::LibXML::Node manpage for other methods \& \& $pinode\->setData( $data_string ); \& $pinode\->setData( name=>string_value [...] ); .Ve .SH DESCRIPTION .IX Header "DESCRIPTION" Processing instructions are implemented with XML::LibXML with read and write access. The PI data is the PI without the PI target (as specified in XML 1.0 [17]) as a string. This string can be accessed with getData as implemented in XML::LibXML::Node. .PP The write access is aware about the fact, that many processing instructions have attribute like data. Therefore \fBsetData()\fR provides besides the DOM spec conform Interface to pass a set of named parameter. So the code segment .PP .Vb 3 \& my $pi = $dom\->createProcessingInstruction("abc"); \& $pi\->setData(foo=>\*(Aqbar\*(Aq, foobar=>\*(Aqfoobar\*(Aq); \& $dom\->appendChild( $pi ); .Ve .PP will result the following PI in the DOM: .PP .Vb 1 \& .Ve .PP Which is how it is specified in the DOM specification. This three step interface creates temporary a node in perl space. This can be avoided while using the \fBinsertProcessingInstruction()\fR method. Instead of the three calls described above, the call .PP .Vb 1 \& $dom\->insertProcessingInstruction("abc",\*(Aqfoo="bar" foobar="foobar"\*(Aq); .Ve .PP will have the same result as above. .PP XML::LibXML::PI's implementation of \fBsetData()\fR documented below differs a bit from the standard version as available in XML::LibXML::Node: .IP setData 4 .IX Item "setData" .Vb 2 \& $pinode\->setData( $data_string ); \& $pinode\->setData( name=>string_value [...] ); .Ve .Sp This method allows one to change the content data of a PI. Additionally to the interface specified for DOM Level2, the method provides a named parameter interface to set the data. This parameter list is converted into a string before it is appended to the PI. .SH AUTHORS .IX Header "AUTHORS" Matt Sergeant, Christian Glahn, Petr Pajas .SH VERSION .IX Header "VERSION" 2.0209 .SH COPYRIGHT .IX Header "COPYRIGHT" 2001\-2007, AxKit.com Ltd. .PP 2002\-2006, Christian Glahn. .PP 2006\-2009, Petr Pajas. .SH LICENSE .IX Header "LICENSE" This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.