【问题标题】:Flex String to HTML for parse with DOMFlex String 到 HTML 用于解析 DOM
【发布时间】:2012-08-30 03:00:45
【问题描述】:

我有一个字符串:

private str:String = '
<!DOCTYPE html>
<html>
<body>
<div>TEST</div>
<span id="t1">T1 Content</span>
<span class="t2">T2 Content</span>
</body>
</html>';

我想解析字符串。接下来,我通过 Object、ID 或 Class 获取 innerHTMl。

例如:

Objects: Body, Div, Span
IDs: t1
Classes: t2

在带有the class 的PHP 中,这很容易。但我无法使用 Flex 创建这个版本。

感谢您的帮助...

【问题讨论】:

  • 我认为这个问题太宽泛,无法在本网站上回答。也许您应该尝试在 AS3 中编写自己的 HTML 解析器和/或尝试转换您找到的 PHP 类,然后将您遇到的特定错误返回给我们。
  • 如果是 XHTML,您可以将其视为常规 XML 对象。但我认为你的例子的第一行已经不合规了。
  • 我相信 as3 在创建原生 XML 对象时会忽略感叹词 (),所以第一行应该没问题,如果不是,你总是可以用 regex 或 string.replace 提取它()

标签: actionscript-3 apache-flex air flash-builder


【解决方案1】:

在as3中转成原生XML,然后用e4x解析需要的信息:

var xml:XML = XML(str);

//trace the content of any span with the id of "t1"
trace(xms..span.(attribute("id") == "t1"));

//trace the content of any span with the class t2
trace(xml..span.(attribute("class") == "t2"));

//trace the contents of the first div
trace(xml..div[0]);

有关 e4x 的更多信息,这是一本很好的入门读物: http://www.senocular.com/flash/tutorials/as3withflashcs3/?page=4

【讨论】:

  • 我有一个错误:TypeError:错误 #1085:元素类型“link”必须由匹配的结束标记“”终止。 docs.google.com/document/d/…
  • 我在你的问题中没有看到链接标签,加载复杂的 html 页面(如 stackoverflow 主页)总是很棘手,因为它们并不总是符合 XML 标准。该错误是因为 stackoverflow 上的链接标签在其标签上没有尾随 /,这使得标记格式错误导致该错误。
  • 如果您无法控制传入的 html,那么您必须创建一些清理功能以确保标记有效。您也可以只在字符串中搜索您想要的数据而忘记将其转换为 xml。
猜你喜欢
  • 2013-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-04
  • 1970-01-01
相关资源
最近更新 更多