我正在使用适用于 Puppet 3.2 的 Augeas 工具,并且正在尝试创建一个 XML 文件。我希望能够将多个具有相同名称的字段添加到我的 XML 文档中。例如,我想将 node2/location2 与 node1/location1 分开,方法是将其放在自己的“节点”字段中。这是我的代码:
augeas { "update template":
lens => "Xml.lns",
require => File["${buildpath}/tempfile.xml"],
incl => "${buildpath}/tempfile.xml",
changes => [
"set member/acceptors[#attribute]/node[#attribute]/nodeIdentity[#attribute]/#text node2",
"set member/acceptors/node/nodeLocation[#attribute]/#text location2",
"set member/acceptors/node/nodeIdentity[#attribute]/#text node1",
"set member/acceptors/node/nodeLocation[#attribute]/#text location1"
],
}
这是我得到的 XML 输出:
<member>
<acceptors>
<node>
<nodeIdentity>node2</nodeIdentity>
<nodeLocation>location2</nodeLocation>
<nodeIdentity>node1</nodeIdentity>
<nodeLocation>location1</nodeLocation>
</node>
</acceptors>
</member>
这是我想要的输出:
<member>
<acceptors>
<node>
<nodeIdentity>node2</nodeIdentity>
<nodeLocation>location2</nodeLocation>
</node>
<node>
<nodeIdentity>node1</nodeIdentity>
<nodeLocation>location1</nodeLocation>
</node>
</acceptors>
</member>
我尝试将 [#attribute] 添加到 node1 行,如下所示:
"set member/acceptors/node[#attribute]/nodeIdentity[#attribute]/#text node1",
但是“node1”没有被输出。有什么建议么?