[英]Closing open XML tags with regex
基本上我想在這里做同樣的事情,這是在Python中完成的。 我想將所有自閉元素替換為長語法。
例
<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>
這可以用來替換一個標簽(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");
String resultHtml = inputHtml.replaceAll("(?six)<(\\w+)([^<]*?)/>", "<$1$2></$1>");
這將正確處理未終止的標簽,如<hr>
和<img>
好,朋友們。 我找到了一個解決方法。 我把輸出方法掛鈎到這個html來自的xml,XSLT引擎負責為我關閉那些打開的標簽。 感謝您的回答,但如果您碰巧有問題的解決方案,請留下您的答案,我會將其標記為答案。 這可能對其他人有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.