मैं XMLStarlet का उपयोग करके नया हूं और मैं सोच रहा हूं कि क्या माता-पिता नोड को हटाने की संभावना है, जिसमें उसके टैग के अंदर एक विशिष्ट मान वाला बच्चा है।

मेरे उदाहरण में, मैं उस नोड "" को हटाना चाहता हूं जिसमें एक चाइल्ड नोड "" है, जिसमें विशिष्ट मान "SecondTab< है) / मजबूत>":

एक्सएमएल शुरू करना:

<?xml version="1.0" encoding="UTF-8"?>
<Profile xmlns="http://soap.sforce.com/2006/04/metadata">
    <tabVisibilities>
        <tab>FirstTab</tab>
        <visibility>DefaultOn</visibility>
    </tabVisibilities>
    <tabVisibilities>
        <tab>SecondTab</tab>
        <visibility>DefaultOn</visibility>
    </tabVisibilities>
    <tabVisibilities>
        <tab>ThirdTab</tab>
        <visibility>DefaultOff</visibility>
    </tabVisibilities>
</Profile>

अपेक्षित एक्सएमएल:

<?xml version="1.0" encoding="UTF-8"?>
<Profile xmlns="http://soap.sforce.com/2006/04/metadata">
    <tabVisibilities>
        <tab>FirstTab</tab>
        <visibility>DefaultOn</visibility>
    </tabVisibilities>
    <tabVisibilities>
        <tab>ThirdTab</tab>
        <visibility>DefaultOff</visibility>
    </tabVisibilities>
</Profile>

बहुत बहुत धन्यवाद, डेविड।

0
Davide Buoso 18 मार्च 2021, 21:52
हम प्रश्नकर्ताओं को यह दिखाने के लिए प्रोत्साहित करते हैं कि उन्होंने स्वयं समस्या को हल करने के लिए अब तक क्या प्रयास किया है।
 – 
Cyrus
18 मार्च 2021, 21:58

1 उत्तर

सबसे बढ़िया उत्तर

आपकी फ़ाइल नामस्थान का उपयोग करती है।

xmlstarlet edit -N ns='http://soap.sforce.com/2006/04/metadata' --delete "//ns:tabVisibilities[ns:tab[contains(text(),'SecondTab')]]" file.xml

आउटपुट:

<?xml version="1.0" encoding="UTF-8"?>
<Profile xmlns="http://soap.sforce.com/2006/04/metadata">
  <tabVisibilities>
    <tab>FirstTab</tab>
    <visibility>DefaultOn</visibility>
  </tabVisibilities>
  <tabVisibilities>
    <tab>ThirdTab</tab>
    <visibility>DefaultOff</visibility>
  </tabVisibilities>
</Profile>

देखें: xmlstarlet edit --help

3
Cyrus 18 मार्च 2021, 22:19