wix XmlConfig:是否可以在父节点内的特定位置插入新节点

时间:2013-03-27 01:08:14

标签: xml xpath wix

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

...
<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="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>
...

我到目前为止的代码将新节点作为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>
...

... <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" /> <Def someAttr="some value" /> </parentNode> ...

1 个答案:

答案 0 :(得分:1)

我发现通过wix工具无法做到这一点。我必须添加一个自定义操作,将元素放在我想要的位置,然后让安装程序添加我想要的详细信息。不是我认为很好,但现在工作,卸载也适用于此,虽然它留下了空元素。