我想我读过与这个问题有关的每一个网页,但我仍然无法找到解决方案,所以我在这里.
我有一个不受我控制的HTML网页,我需要从我的iPhone应用程序解析它.这是我正在谈论的网页示例:
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</HEAD>
<BODY>
<LI class="bye bye" rel="hello 1">
<H5 class="onlytext">
<A name="morning_part">morning</A>
</H5>
<DIV class="mydiv">
<SPAN class="myclass">something about you</SPAN>
<SPAN class="anotherclass">
<A href="http://www.google.it">Bye Bye è un saluto</A>
</SPAN>
</DIV>
</LI>
</BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)
我正在使用NSXMLParser,它一直顺利,直到找到èhtml实体.它调用foundCharacters:for"Bye Bye",然后调用resolveExternalEntityName:systemID ::,其实体名称为"egrave".在这个方法中,我只是返回在NSData中转换的字符"è",再次调用foundCharacters将字符串"è"添加到前一个"Bye Bye",然后解析器引发NSXMLParserUndeclaredEntityError错误.
我没有DTD,我无法更改我正在解析的html文件.你对这个问题有什么想法吗?罗伯,先谢谢你们所有人.
更新(12/03/2010).在Griffo的建议之后我得到了这样的结论:
data = [self replaceHtmlEntities:data];
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
[parser setDelegate:self];
[parser parse];
Run Code Online (Sandbox Code Playgroud)
其中replaceHtmlEntities:(NSData*)是这样的:
- (NSData *)replaceHtmlEntities:(NSData *)data {
NSString *htmlCode = [[NSString alloc] initWithData:data …Run Code Online (Sandbox Code Playgroud) 大家好,我正在尝试通过Consul DNS 接口从用 Express 编写的 nodejs 前端调用 nodejs 后端微服务,但出现错误。
我正在使用nodejs dns api为唯一节点应用程序设置 dns,以便对本地 Consul DNS 接口进行后续 dns.resolve() 调用。
我希望能够向我的后端服务发出 http 请求,而无需在我的客户端代码中连接其 IP 和端口。我也不想编写自定义代码来查询 Consul HTTP API,以便在我需要调用它时为我的服务获取 ip:port 对。
问题是,当我使用axios(类似于request)对后端服务进行 HTTP 调用时,我总是收到错误消息,因为它无法解析地址。Axios 似乎没有使用我之前设置的 dns:
dns.setServers(['127.0.0.1:8600']);
Run Code Online (Sandbox Code Playgroud)
使用 consul 的 -recursor 命令行选项将虚拟机 (/etc/resolv.conf) 的 dns 设置为 localhost e,使用默认 dns 一切正常!我仍然想了解我在仅在我的 nodejs 应用程序上设置 dns 时做错了什么。