当第一个元素中存在多个 xmlns 属性时,xmlstarlet 无法添加子节点

问题描述 投票:0回答:1
xml ubuntu xml-namespaces xmlstarlet
1个回答
0
投票

您正在处理的属性不仅仅是普通的属性 - 它们是命名空间并且必须相应地考虑在内。由于您的第一个(但不是第二个)文件中有默认名称空间,因此您可以通过以下两种方式之一来处理它。

长而明确的方式:

xmlstarlet ed -N x=http://www.topografix.com/GPX/1/1 --subnode "/x:gpx/x:trk" --type  elem -n "new" -v "Hello World!" test.gpx

或更短的:

xmlstarlet ed  --subnode "/_:gpx/_:trk" --type  elem -n "new" -v "Hello World!" test.gpx

任何一个都应该给你预期的输出。

© www.soinside.com 2019 - 2024. All rights reserved.