基本上我想和在Python中完成的here一样。 我想将所有自闭元素替换为长语法。
实施例
<iframe src="http://example.com/thing"/>
变为
<iframe src="http://example.com/thing"></iframe>
完整示例:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="/sample.css">
<title></title>
<script type="text/javascript" src="/swfobject.js">
//void
</script>
<script type="text/javascript" language="JavaScript" src="/generate.js">
//void
</script>
<script type="text/javascript" language="JavaScript" src="/prototype.js">
//void
</script>
</head>
<body id="mediaPlayer" style="margin:0;padding:0;">
<script type="text/javascript">
swfobject.registerObject('id_G12564763');
function getFlashObject() {
var object;
if (navigator.appName == 'Microsoft Internet Explorer' || navigator.userAgent.indexOf("Chrome")!=-1)
{
object = document.getElementById('id_G12564763');
}
else
{
object = document['flash_id_G12564763'];
}
return object;
}
</script>
</body>
</html>
答案 0 :(得分:1)
这可以用来替换一个标签(javascript中的代码)。
var becomes = "<iframe src='http://example.com/thing'/>".replace(/<(\w*) (.*)\//,'<$1 $2></$1')
同样,在Java中。
String becomes = "<iframe src=\"http://example.com/thing\"/>".replaceFirst("<(\\w*) (.*)\\/", "<$1 $2></$1");
答案 1 :(得分:1)
String resultHtml = inputHtml.replaceAll("(?six)<(\\w+)([^<]*?)/>", "<$1$2></$1>");
这将正确处理未<hr>
和<img>
答案 2 :(得分:1)
好的伙计们。我找到了一个解决方法。我把输出方法挂钩到这个html来自的xml,XSLT引擎负责为我关闭那些打开的标签。感谢您的回答,但如果您碰巧有问题的解决方案,请留下您的答案,我会将其标记为答案。这可能对其他人有用。