2010-01-15 11 views
18

में एक्सएमएल तत्वों को हटाने से आप वाईएक्स में किसी XML फ़ाइल से तत्व को कैसे हटा सकते हैं/हटा सकते हैं?वाईएक्स

उत्तर

20

निम्नलिखित सामग्री के साथ एक .config फ़ाइल को देखते हुए:

<util:XmlConfig 
    On="install" 
    Action="delete" 
    Id="RemoveAnElement" 
    Node="element" 
    File="Application.dll.config" 
    VerifyPath="/configuration/thingy/stuff/item[\[]@type='value'[\]]" 
    ElementPath="/configuration/thingy/stuff" 
    Sequence="100" 
/> 

यह:

<configuration> 
<thingy> 
    <stuff> 
    <item type='value' /> 
    <item type='value2' /> 
    </stuff> 
</thingy> 
</configuration> 

प्रकार विशेषता 'मान' पर सेट के साथ आइटम तत्व निकालने के लिए इस चाल करने के लिए लगता है XmlConfig तत्व Wix "उपयोगिता" एक्सटेंशन द्वारा परिभाषित किया गया है। कि एक्सटेंशन का उपयोग करने के लिए, अगर आप इस तरह UtilExtension नाम स्थान घोषित करने के लिए है:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
    xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> 

तुम भी light.exe आदेश के विकल्प के लिए -ext WixUtilExtension जोड़ सकते हैं या एक संदर्भ के लिए "WixUtilExtension.dll" जोड़ने के लिए यदि आप एक wix का लेखन कर रहे है दृश्य स्टूडियो में वोटिव का उपयोग कर परियोजना।

+1

ElementPath अंक:

<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util" > 

नहीं तो आप त्रुटि प्राप्त होगी VerifyPath के माता पिता के लिए। बहुत उपयोगी, धन्यवाद! –

+0

वाईएक्स 3.6 का उपयोग करके, मुझे मोमबत्ती में '-ext WixUtilExtension' भी जोड़ना पड़ा। – Chris

4

मुझे पता है कि यह पुराना है, लेकिन मैंने अपनी समस्या के लिए हर जगह खोज की और जब तक मैं अंत में जवाब पर ठोकर नहीं पाया तब तक इसे कभी नहीं मिला। तो शायद यहां पोस्ट करके किसी को यह उपयोगी लगेगा।

ऊपर जवाब के अलावा, V4.0 xmlns का उपयोग कर यदि: लिंक util इस तरह दिखना चाहिए:

The Component element contains an unhandled extension element 'util:Blah'. Please ensure that the extension for elements in the 'http:⁄⁄schemas.microsoft.com⁄wix⁄UtilExtension' namespace has been provided.

+0

v4 के लिए जानकारी को जोड़ने के लिए धन्यवाद –