【发布时间】:2022-10-24 09:22:43
【问题描述】:
我确实有下一个 XML 正文,
<userPermissions>
<enabled>true</enabled>
<name>ManageReportsInPubFolders</name>
</userPermissions>
<userPermissions>
<enabled>true</enabled>
<name>ManageRoles</name>
</userPermissions>
<userPermissions>
<enabled>true</enabled>
<name>ManageSandboxes</name>
</userPermissions>
<userPermissions>
<enabled>true</enabled>
<name>ManageSelfService</name>
</userPermissions>
<userPermissions>
<enabled>true</enabled>
<name>ManageSharing</name>
</userPermissions>
我想删除:
<userPermissions>
<enabled>true</enabled>
<name>ManageSandboxes</name>
</userPermissions>
所以渴望输出:
<userPermissions>
<enabled>true</enabled>
<name>ManageReportsInPubFolders</name>
</userPermissions>
<userPermissions>
<enabled>true</enabled>
<name>ManageRoles</name>
</userPermissions>
<userPermissions>
<enabled>true</enabled>
<name>ManageSelfService</name>
</userPermissions>
<userPermissions>
<enabled>true</enabled>
<name>ManageSharing</name>
</userPermissions>
我尝试了以下命令:
sed -i '' '//,/</userPermissions>/d',但它会删除所有 userPermissions 标签,我不需要这个。请让我知道你的想法/
【问题讨论】:
-
XML 示例不是格式良好,它缺少一个根标签。基于 XSLT 的解决方案怎么样?
-
你的问题不清楚:为什么你想删除那个特定的
<userPermissions>吗?是因为它是第三个元素还是因为它有一个<name>ManageSandboxes</name>子元素? -
<Profile> <userPermissions> <enabled>true</enabled> <name>ManageReportsInPubFolders</name> </userPermissions> <userPermissions> <enabled>true</enabled> <name>ManageRoles</name> </userPermissions> < userPermissions> <enabled>true</enabled> <name>ManageSelfService</name> </userPermissions> <userPermissions> <enabled>true</enabled> <name>ManageSharing</name> </userPermissions> </Profile>