您并没有明确指定这将是来自DOM的html(除其他事项外)。假设您想要修改DOM...使用jQuery,您可以执行以下操作:
$(document).ready( function() {
$('a').filter( function() {
return $(this).attr('href').substr(0, 7) == "http://";
}).attr('target', '_blank');
});
a
标签具有target="_blank"
): http://jsfiddle.net/amRrj/。xml ed -P -S -i //a -t attr -n target -v _blank somefile.html >somefile_2.html
xml ed
调用 XMLStarlet 编辑命令
-P
保留格式
-S
保留空格
-i //a
在每个标签处插入
-t attr
插入类型为属性
-n target
要插入的属性名称
-v _blank
要插入的属性值
对于更复杂的编辑,您可以使用 XMLStarlet 和 xslt 转换。
/<a(.*?)href="(.*?)"(.*?)>(.*?)<\/a>/gi
console.log(`<a href="https://www.stackoverflow.com/test" target="_parent">Stackoverflow</a>`.replace(/<a(.*?)href="(.*?)"(.*?)>(.*?)<\/a>/gi, '<a href="$2" target="_blank">$4</a>'));
console.log(`<a href="https://www.stackoverflow.com/test" target="_target">Stackoverflow</a>`.replace(/<a(.*?)href="(.*?)"(.*?)>(.*?)<\/a>/gi, '<a href="$2" target="_blank">$4</a>'));
console.log(`<a href="https://www.stackoverflow.com/test">Stackoverflow</a>`.replace(/<a(.*?)href="(.*?)"(.*?)>(.*?)<\/a>/gi, '<a href="$2" target="_blank">$4</a>'));
<a href="#" target="_blank"></a>
和<a target="_blank" href="#"></a>
都是有效的。 - Alessandro Vendruscolo