问题标签 [html-xml-utils]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
80 浏览

html - 替换 HTML 标记 ID 中的任何内容

在 Stackoverflow 和 Google 上搜索过,最接近的答案是:

sed -i -e 's|<element id="lastupdate">\([0-9]\{0,\}\)</element>|<element id="lastupdate">'"$(date -d @${contents})"'</element>|g' /var/www/html/index.html

仅在标签内容为空时有效。如果已经更改,则不能再使用。

我们的想法是更改此标签 ID 内的任何内容,而不仅仅是在它为空时。

这是关于使用 awk 读取标签 id 内任何内容的一个很好的答案:https ://stackoverflow.com/a/13148004/5623661 。但它仅适用于读取(使用 awk)而不适用于附加/替换(使用 sed)。

另一个想法是不仅有一种方法来替换:而且另一种方法是附加到给定标签内的任何内容中。

是否可以使用适用于 HTML 的工具而不是专门为 XML 制作的工具?试过:

输入:xmlstarlet ed --update '//element[@id="daipeg"]' --value 'new' index.html

输出:

期望的结果:将里面的“No”更改<element id="daipeg">No</element>为“new”,直接进入 index.html 文件。