संरक्षण दायर करने के लिए (मेरा पूरा स्क्रिप्ट गुण जोड़ने के लिए कोड है):एक्सएमएल पढ़ा से और जब तक मैं इस पर्ल कोड का उपयोग एक फ़ाइल से XML को पढ़ने के लिए, और फिर एक और फ़ाइल पर लिखने प्रारूप
#!usr/bin/perl -w
use strict;
use XML::DOM;
use XML::Simple;
my $num_args = $#ARGV + 1;
if ($num_args != 2) {
print "\nUsage: ModifyXML.pl inputXML outputXML\n";
exit;
}
my $inputPath = $ARGV[0];
my $outputPath = $ARGV[1];
open(inputXML, "$inputPath") || die "Cannot open $inputPath \n";
my $parser = XML::DOM::Parser->new();
my $data = $parser->parsefile($inputPath) || die "Error parsing XML File";
open my $fh, '>:utf8', "$outputPath" or die "Can't open $outputPath for writing: $!\n";
$data->printToFileHandle($fh);
close(inputXML);
लेकिन इस लाइन ब्रेक जैसे पात्रों को संरक्षित नहीं करता है। उदाहरण के लिए, इस XML:
<?xml version="1.0" encoding="utf-8"?>
<Test>
<Notification Content="test1 testx 
test2
test3
" Type="Test1234">
</Notification>
</Test>
इस हो जाता है:
<?xml version="1.0" encoding="utf-8"?>
<Test>
<Notification Content="test1 testx
test2
test3
" Type="Test1234">
</Notification>
</Test>
मुझे लगता है मैं ठीक से दर्ज करने के लिए नहीं लिख रहा हूँ।
जब मुझे लगता है कि "लाइन ब्रेक को संरक्षित करना" यह बिल्कुल दिमाग में नहीं आता है। यहां आप * एन्कोडिंग * को संरक्षित करना चाहते हैं जो संयोग से सीआर/एलएफ वर्णों का प्रतिनिधित्व करता है। – tjd
ऐसा लगता है कि एक्सएमएल :: डीओएम सब कुछ विस्तारित करने के लिए एक डिफ़ॉल्ट हैंडलर सेट करता है (DOM.pm लाइन 2054-58 देखें)। क्या आपने उस अवांछित व्यवहार को पाने के लिए उसमें झुकाव करने की कोशिश की है? – mghicks
एक्सएमएल :: डीओएम का वह हिस्सा सही काम नहीं कर रहा है - सुझाव के लिए धन्यवाद हालांकि – Warpin