- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
将 XmlConfig
元素嵌套在另一个 XmlConfig
中的目的和/或收获是什么(除了增加创建/删除属性的可读性)> 元素?
我所指的示例(我使用的是 WiX 3.6):
<util:XmlConfig ...>
<util:XmlConfig ... />
</util:XmlConfig>
最佳答案
简短的回答:嵌套 <util:XmlConfig>
选项的唯一目的elements 是为了能够以更具可读性的方式向新创建的元素添加/删除属性。所以,这基本上就是您的假设。
考虑以下初始 XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<cars>
<car name="ford" type="minivan"/>
<car name="toyota" type="sedan"/>
<motos>
<moto name="honda" model="shadow" type="cruiser" />
</motos>
</cars>
为了添加另一个<moto>
为此,可以使用以下 WiX 代码段:
<util:XmlConfig Id="elem1" Action="create" ElementPath="cars/motos" File="$(var.XmlFilePath)" Node="element" On="install" Name="moto">
<util:XmlConfig Id="elem11" ElementId="elem1" Name="name" Value="yamaha" File="$(var.XmlFilePath)" />
<util:XmlConfig Id="elem12" ElementId="elem1" Name="type" Value="chopper" File="$(var.XmlFilePath)" />
</util:XmlConfig>
因此,XML 文件最终如下所示:
<?xml version="1.0" encoding="utf-8"?>
<cars>
<car name="ford" type="minivan"/>
<car name="toyota" type="sedan"/>
<motos>
<moto name="honda" model="shadow" type="cruiser" />
<moto name="yamaha" type="chopper" />
</motos>
</cars>
这里有几点需要注意:
Action
无法在内部定义属性 XmlConfig
元素,这是合乎逻辑的 - 它与父元素之一相同Node
也不能定义属性,因为只允许定义属性File
每次都属性 - 似乎是这里的设计问题ElementId
attribute 应该指向你要添加属性的父元素,这也很奇怪,因为它也可以从嵌套代码中“猜到”无论如何,如果您确实想要创建一个 XML 子树结构,那么最终作为结果 XML 中的嵌套元素的元素由 XmlConfig
生成。元素放置在同一水平面上。因此,以下代码段:
<util:XmlConfig Id="elem1" Action="create" ElementPath="cars/motos" File="$(var.XmlFilePath)" Node="element" On="install" Name="moto" Sequence="1">
<util:XmlConfig Id="elem11" ElementId="elem1" Name="name" Value="yamaha" File="$(var.XmlFilePath)" />
<util:XmlConfig Id="elem12" ElementId="elem1" Name="type" Value="chopper" File="$(var.XmlFilePath)" />
</util:XmlConfig>
<util:XmlConfig Id="elem2" Action="create" ElementPath="cars/motos/moto[\[]@name='yamaha'[\]]" File="$(var.XmlFilePath)" Node="element" On="install" Name="extra" Sequence="2">
<util:XmlConfig Id="elem21" ElementId="elem2" File="$(var.XmlFilePath)" Name="bags" Value="leather" />
</util:XmlConfig>
将按如下方式转换 XML:
<?xml version="1.0" encoding="utf-8"?>
<cars>
<car name="ford" type="minivan"/>
<car name="toyota" type="sedan"/>
<motos>
<moto name="honda" model="shadow" type="cruiser"/>
<moto name="yamaha" type="chopper">
<extra bags="leather"/>
</moto>
</motos>
</cars>
注意以下几点:
XmlConfig
元素放置在同一级别,尽管它们会在生成的 XML 中产生嵌套元素Sequence
属性很重要,以防您向同时创建的元素添加属性或子元素希望现在这更有意义。对于最初给出的错误答案,我们深表歉意。
关于xml - WiX XmlConfig : Purpose for nesting XmlConfig in XmlConfig,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13869589/
将 XmlConfig 元素嵌套在另一个 XmlConfig 中的目的和/或收获是什么(除了增加创建/删除属性的可读性)> 元素? 我所指的示例(我使用的是 WiX 3.6): 最佳答案
嗨,我正在尝试使用以下方法更改配置文件中的值设置: 此代码不会更改 applicationHost.config 中的值文件。我尝试添加 act
我有一个组件,它运行几个 XmlConfig 操作:一个在安装时,一个在卸载时: 该组件是我可以安装和回滚的补丁的一部分。问题是当我卸
我有一个类似这样的 xml。 VISA 0 16 4 这是我用来
我想读取这个 xml 文件: C:\Users\bellibot\Desktop config.xml nagiosadmin nagiosadmin 127.0.0.1/
我正在使用 Wix XmlConfig 来更改 XML 文件,尤其是。 以下代码将抛出异常: SchedXmlConfig: Error 0x8007007a: failed to copy XmlC
我想知道在创建/更改 xml 时 C# 自定义操作和 util 扩展之间的优缺点。 根据我的经验- C# 自定义操作:使用 LINQ to XML 和 XmlReader 比使用 wix 语法更常见。
我正在尝试使用 XmlFile 扩展来删除 XML 文件中的条目,准确地说是这个: 这是我的 XML 文件 这是我的 Wix 代码
我正在研究的是 util:XmlConfig (或 wix 工具箱中的任何东西)是否可以以允许我在其父节点内的特定位置创建安装节点的方式使用。下面是一个例子: ... ... 我想在两个 ch
我是一名优秀的程序员,十分优秀!