Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用sed命令删除整个xml标记_Xml_Sed - Fatal编程技术网

使用sed命令删除整个xml标记

使用sed命令删除整个xml标记,xml,sed,Xml,Sed,我想删除整个xml标记,包括内容。但只有前两行被删除。sed或awk可以 <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" maxTotal="100" maxIdle="30" maxWaitMillis="10000" username="javauser" password="javadude"

我想删除整个xml标记,包括内容。但只有前两行被删除。sed或awk可以

 <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
                   maxTotal="100" maxIdle="30" maxWaitMillis="10000"
                   username="javauser" password="javadude" 
                             driverClassName="com.mysql.jdbc.Driver"
                             url="jdbc:mysql://localhost:3306/javatest"/>

这会满足你的要求

sed'//!ba}/ 使用xmlstarlet:

xmlstarlet edit --delete '//path/to/your/tag' file.xml

sed或awk是好的-他们在这里是坏的。发布扩展输入片段我建议使用XML/HTML解析器(xmlstarlet,xmllint…)。具有讽刺意味的是,标签中没有适合该工作的工具
xmlstarlet
。记住这一点-
jq是用于json的
,而
xmlstarlet是用于xml的
。非常感谢您对这个sed的帮助。这应该是公认的答案。这项工作的权利也是
xmlstarteet
xmlstarlet edit --delete '//path/to/your/tag' file.xml