2013-03-27 42 views
2

我在研究的是util:XmlConfig(或wix工具箱中的任何东西)是否可以以如下方式使用:允许我在其父节点的特定位置安装一个节点。这里有一个例子: wix XmlConfig:是否可以在父节点中的特定位置插入新节点

... 
<parentNode parentAttr1="parent attr1 value"> 
    <childNode childAttr1="child1 attr1 value" /> 
    <childNode childAttr1="child2 attr1 value" /> 
</parentNode> 
... 

我想插入两个孩子之间一个新的节点,这样的结果会是这样:

... 
<parentNode parentAttr1="parent attr1 value"> 
    <childNode childAttr1="child1 attr1 value" /> 
    <childNode childAttr1="child3 attr1 value" /> 
    <childNode childAttr1="child2 attr1 value" /> 
</parentNode> 
... 

我到目前为止的代码将放置新节点作为父节点的最后一个子节点,看起来像这样:

... 
<util:XmlConfig 
    Id="MY_ID" 
    File="[PROPERTY_SQLRSPATH]ReportServer\rssrvpolicy.config" 
    Action="create" 
    On="install" 
    ElementPath="//parentNode" 
    Node="document" 
    Sequence="1"> 
    <![CDATA[ 
     <childNode childAttr1="child3 attr1 value" /> 
]]> 
</util:XmlConfig> 
... 

所以,它是简而言之。任何帮助,非常感谢!

编辑: 关于这一主题的另一种皱纹会给出这样的结构:

... 
<parentNode parentAttr1="parent attr1 value"> 
    <Abc anAttr="a value" /> 
    <Def someAttr="some value" /> 
</parentNode> 
... 

有什么办法,以目前的子元素之间插入另一个兄弟元素,使最终的结构是这样的?

... 
<parentNode parentAttr1="parent attr1 value"> 
    <Abc anAttr="a value" /> 
    <Ghi YaAttr="yet another value" /> 
    <Def someAttr="some value" /> 
</parentNode> 
... 

回答

1

我发现没有办法通过wix工具来做到这一点。我不得不添加一个自定义操作,将元素放在我想要的位置,然后让安装程序添加我想要的细节。不是我认为的很好,但现在可以工作,卸载也适用于此,尽管它留下了空白的元素。

相关问题