我正在尝试构建一个网络服务,用户在其中输入 HTML,然后通过网络服务验证它是否是有效的 HTML。
我的示例(仅基本)是:
Set objXML = CreateObject("Msxml2.ServerXMLHTTP.6.0")
Dim strEnvelope
strEnvelope = "input=" & Server.HTMLEncode("<b>")
Call objXML.Open("POST", "http://[DOMAIN]/WebServices/HTMLWebService.asmx/ValidateHTML", false)
Call objXML.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
Call objXML.Send(strEnvelope)
Response.Write(strEnvelope & "##" & objXML.responseText & "##")
我的 ASPX 页面验证输入,然后返回是否为真或假(在字符串数组 XML 中)。目前它总是返回假。经过一番调查,由于某种原因,ASMX 接收到的输入似乎是空的,这与 HTML 标记有关——要么它没有被 HTML 编码,要么不被 asmx 脚本接受。它返回以下内容:
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<string />
<string>false</string>
</ArrayOfString>
<string /> 是我将输入直接放回返回的 xml 字符串数组的地方。如果我将“<b>”硬编码到该值中,xml 会将其返回为“<b>”,这是我所期望的。
如果我只是输入“b”,那么它会返回 false,但在字符串数组的第一项中确实给了我一个“b”的值 - 所以它肯定会获取该值。
之前有没有人将 html 解析为 ASP.NET (c#) Web 服务或有任何建议?