使用 xmlstarlet 编辑 HTML 中特定节点的 XPath 语法
XPath syntax to edit specific node in HTML using xmlstarlet
假设我有一个如下所示的 HTML 文档:
mypage.html
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<table>
<tbody>
...
<tr>
<td id="MY_ID">123</td>
如何编辑设置为 MY_ID
的元素?当它只是文档中的 table 时,我已经成功地使用了以下命令,但是将它放在更大的文档中会破坏它:
xmlstarlet ed --update '//td[@id="MY_ID"]' --value '456' mypage.html
您的 td
元素需要关闭 (</td>
) 才能有效 XML。
您可以尝试以下操作 here :
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<table>
<tbody>
...
<tr>
<td id="MY_ID">123</td>
<td> id="NOTMYID">127</td>
</tr>
</tbody>
</table>
</body>
</html>
用你自己的表达方式:
//td[@id="MY_ID
假设我有一个如下所示的 HTML 文档:
mypage.html
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<table>
<tbody>
...
<tr>
<td id="MY_ID">123</td>
如何编辑设置为 MY_ID
的元素?当它只是文档中的 table 时,我已经成功地使用了以下命令,但是将它放在更大的文档中会破坏它:
xmlstarlet ed --update '//td[@id="MY_ID"]' --value '456' mypage.html
您的 td
元素需要关闭 (</td>
) 才能有效 XML。
您可以尝试以下操作 here :
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<table>
<tbody>
...
<tr>
<td id="MY_ID">123</td>
<td> id="NOTMYID">127</td>
</tr>
</tbody>
</table>
</body>
</html>
用你自己的表达方式:
//td[@id="MY_ID