我的代码如下:
<form>
<input name="whatever">
<input name="whatever2">
</form>
为了使Visual Basic .NET中的XML解析器能够解析它,我需要关闭每个输入标记。像这样:
<input></input>
如何将此附加到我拥有的HTML字符串中的每个输入?使用Regex?
Dim Method As New Regex("<input.*?>", RegexOptions.IgnoreCase)
For each Item as String in Method.Results("<form><input><input></form>")
'Somehow append </input>
Next
答案 0 :(得分:2)
您可以使用非常简单的正则表达式来修复输入。您可以使用多种替换模式,具体取决于您希望元素的格式如何。
Function FixInputElement(htmlMarkup As String)
Return Regex.Replace(htmlMarkup, "(<input[^>]*)(>)", "$1/$2", RegexOptions.IgnoreCase)
End Function
Replacement Input Output
$1/$2 <input id="in1"> <input id="in1"/>
$1 /$2 <input id="in2"> <input id="in2" />
$1/$2</input> <input id="in3"> <input id="in3"></input>
如果某些输入有可能正确关闭,您可以添加负面的背后隐藏
(<input[^>]*)((?<!/)>)
Input Output
<input id="in1"> <input id="in1" />
<input id="in2"> <input id="in2" />
<input id="in3-dontfix" /> <input id="in3-dontfix" />