基本上我想要做的和在Python中完成的here一样。 我想将所有自闭元素替换为长语法。用正则表达式关闭开放的XML标记
例
<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>
请注意,http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454描述了这个操作的逆过程。 – Borealid 2010-08-12 15:12:10
Borealid,我意识到这一点。你知道如何解决这个问题吗?据我所知,在使用解析器解析XML之前,XML必须格式良好。这正是我需要做的。我已经尝试了Tidy,但那不起作用,项目不再维护。这是一个小的html输出,它将简单地包含一系列javascript包含和对象嵌入标记(flash)。 – user3111525 2010-08-13 07:26:46