首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过单个XmlConfig插入XML结构

通过单个XmlConfig插入XML结构
EN

Stack Overflow用户
提问于 2014-07-01 15:29:40
回答 1查看 485关注 0票数 1

我使用Wix3.8,并且能够使用XmlConfig成功地更新XML .config文件中的值

代码语言:javascript
复制
<util:XmlConfig Id="..."
    File="[INSTALLFOLDER]unity.config"
    Action="create"
    Node="value"
    On="install"
    ElementPath="/configuration/unity/..."
    Value="[SOME_PROPERTY]" />

我的目标不仅仅是插入一个文本值,而是插入一个完整的XML块

我知道我可以使用多个XmlConfig语句连接ElementId属性来构建XML结构。这不适合我。

要插入的实际XML结构仅在安装时才定义,因此我不可能在构建时猜测XmlConfig元素的结构应该如何。

我将这个XML结构作为文本输入到SOME_PROPERTY中,这实际上是一个有效的XML代码。如何将其插入到.config文件中的现有节点中?

一个简单的C#自定义操作的例子将适合我,但我想也许有一种标准的方法来做这个,像XmlConfig或其他一些Wix扩展.

EN

回答 1

Stack Overflow用户

发布于 2014-09-18 07:07:04

它比您想象的更简单,只需将XML片段作为CDATA部分包含在XmlConfig元素的内容中,即

因此,假设您有一个结构,如:

代码语言:javascript
复制
<root>
<child name="test"/>
</root>

然后,您可以执行以下操作,将名为test2的子节点添加到父节点"root“。

重要的是,在ElementPath中,您必须放置一个XPath来选择父节点,并且您必须省略Value属性,而是将它放在XmlConfig元素的元素主体中,如果要插入它,就必须将它包装在CDATA部分中。

就像下面这样

代码语言:javascript
复制
<util:XmlConfig Id="..."
    File="[INSTALLFOLDER]unity.config"
    Action="create"
    Node="document"
    On="install"
    ElementPath="//root"
    >
<![CDATA[<child name="test2"/>]]>
</util:XmlConfig>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24514069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档