मैं एक एक्सएमएल फाइल में पढ़ना चाहता हूं और एक तत्व को संशोधित करना चाहता हूं और फिर उसे फ़ाइल में सहेजना चाहता हूं। प्रारूप को संरक्षित करते समय ऐसा करने का सबसे अच्छा तरीका क्या है और मिलान लाइन टर्मिनेटर (सीआरएलएफ बनाम एलएफ) भी रखें?पावरहेल एक्सएमएल और संरक्षित प्रारूप
यहाँ मैं क्या किया है, लेकिन यह है कि ऐसा नहीं करता है:
$xml = [xml]([System.IO.File]::ReadAllText($fileName))
$xml.PreserveWhitespace = $true
# Change some element
$xml.Save($fileName)
समस्या यह है कि अतिरिक्त नई लाइन्स (उर्फ एक्सएमएल में खाली लाइनें) निकाल दिए जाते हैं और बाद मैं मिश्रित वामो और CRLF।
$f = '.\xml_test.xml'
# Using .NET XmlDocument
$xml = New-Object System.Xml.XmlDocument
$xml.PreserveWhitespace = $true
# Or using PS [xml] (older PowerShell versions may need to use psbase)
$xml = New-Object xml
#$xml.psbase.PreserveWhitespace = $true # Older PS versions
$xml.PreserveWhitespace = $true
# Load with preserve setting
$xml.Load($f)
$n = $xml.SelectSingleNode('//file')
$n.InnerText = 'b'
$xml.Save($f)
बस सुनिश्चित करें: एक powershell नौसिखिया :)
'प्रारूप को संरक्षित करने' से आपका क्या मतलब है? – manojlds
शायद यह कोई फर्क नहीं पड़ता है, लेकिन आपने इसके बजाय '$ xml = [xml] (Get-content $ filename) 'की कोशिश की है? अन्यथा आपको मूल .NET XmlDocument क्लास और फ़ाइल को लोड, संपादित और सहेजने के तरीकों का उपयोग करना पड़ सकता है। – Ryan
@manojids मैं presersver whitespace, newlines, टैब, आदि –