xml - Using Powershell to Delete Node -


  & lt;? Xml संस्करण = "1.0" एन्कोडिंग = "UTF-8"? & Gt; & Lt; लोग xmlns = "टेस्टडेटा" & gt; & Lt; व्यक्ति आईडी = "टेस्टडेटा" स्थिति = "टेस्टडेटा" & gt; & LT; नाम & gt; & LT; FirstName & gt; TestData & lt; / प्रथम नाम & gt; & LT; अंतिम नाम & gt; TestData & lt; / अंतिम नाम & gt; & Lt; / नाम & gt; & LT; आयाम & gt; & Lt; आयाम आईडी = "टेस्टडेटा" नाम = "टेस्टडेटा" आयाम = "टेस्टडेटा" / & gt; & Lt; आयाम आईडी = "टेस्टडेटा" नाम = "टेस्टडेटा" आयाम = "टेस्टडेटा" / & gt; & Lt; आयाम आईडी = "टेस्टडेटा" नाम = "टेस्टडेटा" आयाम = "टेस्टडेटा" / & gt; & Lt; आयाम आईडी = "टेस्टडेटा" नाम = "टेस्टडेटा" आयाम = "टेस्टडेटा" / & gt; & Lt; / आयाम & gt; & LT; EmploymentInformation & gt; & LT; DateHired & gt; TestData & lt; / DateHired & gt; & LT; DateRehired & gt; TestData & lt; / DateRehired & gt; & LT; EmployeeStatus & gt; TestData & lt; / EmployeeStatus & gt; & LT; JobCode & gt; TestData & lt; / JobCode & gt; & Lt; पर्यवेक्षक आईडी = "टेस्टडेटा" नाम = "टेस्टडेटा" / & gt; & Lt; title & gt; TestData & lt; / title & gt; & Lt; / EmploymentInformation & gt; & Lt; / व्यक्ति & gt; & Lt; / लोग & gt;  

मेरा XML दस्तावेज़ ऊपर है मैं 'रोजगार सूचना' के अंतर्गत नोड के पर्यवेक्षक को निकालना चाहता हूं मुझे कुछ परेशानी हो रही है जो मेरे पास XPath है ... यह है जो मैंने अभी तक किया है:

  [xml] $ xml = gc C: \ users \ username \ Downloads \ Test.xml $ पर्यवेक्षक = $ xml.SelectSingleNode ( '// लोग / व्यक्ति / EmploymentInformation / पर्यवेक्षक') $ employmentInformation = $ xml.SelectSingleNode ( '// लोग / व्यक्ति / EmploymentInformation') [शून्य] $ employmentInformation.RemoveChild ($ पर्यवेक्षक) $ Xml.Save ('C: \ users \ username \ Downloads \ Result.xml')  

< P> नमस्ते आपके पास आपके एक्सएमएल दस्तावेज़ पर एक नेमस्पेस परिभाषित है लेकिन आपके XPath को योग्य नहीं है। निम्नलिखित की तरह कुछ कार्य करें:

  [एक्सएमएल] $ एक्सएमएल = जीसी C: \ Users \ उपयोगकर्ता नाम \ डाउनलोड \ Test.xml $ एमजीआर = नई-वस्तु -TypeName System.Xml.XmlNamespaceManager -ArgumentList $ xml.NameTable $ mgr.AddNamespace ( "बॉब", "TestData") $ पर्यवेक्षक = $ xml.SelectSingleNode ( '// बॉब: लोग / बॉब: व्यक्ति / बॉब: employmentInformation / बॉब: पर्यवेक्षक', $ एमजीआर) $ employmentInformation = $ xml.SelectSingleNode ( '// बॉब: लोग / बॉब: व्यक्ति / बॉब: EmploymentInformation', $ एमजीआर) [शून्य] $ employmentInformation.RemoveChild ($ पर्यवेक्षक) $ xml.Save ( 'C: \ Users \ उपयोगकर्ता नाम \ डाउनलोड \ Result.xml ')  

यदि आप इसे कई लोगों के साथ करना चाहते हैं तो निम्नलिखित को ऐसा करना चाहिए:

  [xml] $ xml = gc । \ Test.xml $ एमजीआर = नई-वस्तु -TypeName System.Xml.XmlNamespaceManager -ArgumentList $ xml.NameTable $ mgr.AddNamespace ( "बॉब", "TestData") $ पर्यवेक्षकों = $ xml.SelectNodes ( '// बॉब: लोग / बॉब: व्यक्ति / बॉब: रोजगार सूचना / बॉब: पर्यवेक्षक ', $ एमजीआर) विदेशी मुद्रा ($ पर्यवेक्षक में $ पर्यवेक्षक) {$ supervisor.ParentNode.RemoveChil डी ($ पर्यवेक्षक)} $ xml.Save ('। \। Result.xml')  

या आप XML के लिए Powershell के builtin समर्थन का उपयोग कर सकते हैं:

  [एक्सएमएल] $ एक्सएमएल = जीसी। \ Test.xml foreach ($ xml.People.Person.EmploymentInformation.Supervisor में $ पर्यवेक्षक) {$ supervisor.ParentNode.RemoveChild ($ पर्यवेक्षक)} $ xml.Save ( '। \ परिणाम। Xml ')  
पर क्लिक करें

Comments

Popular posts from this blog

python - Strange behavior using PyQt4's 'pyqtSlot' decorator before another decorator -

c# - UnhandledExceptionMode.ThrowException for AppDomain.UnhandledException -

c# - Process.Kill() returns access denied -