我有这样的代码:
<form>
<input name="whatever">
<input name="whatever2">
</form>
为了让 Visual Basic .NET 中的 XML 解析器能够解析它,我需要关闭每个输入标记。像这样:
<input></input>
我如何将其 append 到我拥有的 HTML 字符串中的每个输入?通过使用正则表达式?
Dim Method As New Regex("<input.*?>", RegexOptions.IgnoreCase)
For each Item as String in Method.Results("<form><input><input></form>")
'Somehow append </input>
Next
最佳答案
您可以使用非常简单的正则表达式来修复输入。根据您希望元素的格式如何,您可以使用多种替换模式。
示例代码
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" />
关于html - 将结束标记 append 到 HTML 中不完整的输入元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18304521/