iOS控件(比如UILabel和UITextView)已经支持NSAttributedString,但UICoreTextView提供远不止简单的样式。
如果你的应用需要渲染两文本和图片,或者有一些自定义渲染,那么UICoreTextView是给你的。
如果你真的需要完全控制你的输出,我建议去看看DTCoreText。
UICoreTextView包含两个主要的组件:
——基于UICoreTextView UIView用来显示字符串
HTMLParser - HTML解析器产生一个实例,NSAttributedString。
还有一个NSAttributedString类别,方便NSAttributedString创建对象。
一、什么是HTML带着疑问走到这里,一句话:HTML(HyperTextMark-upLanguage)即超文本标记语言,是WWW的描述语言。
二、什么是XML
XML即ExtentsibleMarkup Language(可扩展标记语言),是用来定义其它语言的一种元语言,其前身是SGML(标准通用标记语言)。它没有标签集(tagset),也没有语法规则(grammatical rule),但 是它有句法规则(syntax rule)。任何XML文档对任何类型的应用以及正确的解析都必须是良构的(well-formed),即每一个打开的标签都必须有匹配的结束标签,不得含有次序颠倒的标签,并且在语句构成上应符合技术规范的要求。XML文档可以是有效的(valid),但并非一定要求有效。所谓有效文档是指其符合其文档类型定义(DTD)的文档。如果一个文档符合一个模式(schema)的规定,那么这个文档是模式有效的(schema valid)。
三、HTML与XML的区别
通过以上对HTML及XML的了解,我们来看看他们之间到底存在着什么区别与联系
xml和html都是用于操作数据或数据结构,在结构上大致是相同的,但它们在本质上却存在着明显的区别。综合网上的各种资料总结如下。
(一)、语法要求不同:
1. 在html中不区分大小写,在xml中严格区分。
2. 在HTML中,有时不严格,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略</p>或者</li>之类的结束标记。在XML中,是严格的树状结构,绝对不能省略掉结束标记。
3. 在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个/ 字符作为结尾。这样分析器就知道不用查找结束标记了。
4. 在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。
5. 在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。
6. 在XML文档中,空白部分不会被解析器自动删除;但是html是过滤掉空格的。
(二)、标记不同:
1、html使用固有的标记;而xml没有固有的标记。
2、Html标签是预定义的;XML标签是免费的、自定义的、可扩展的。
(三)、作用不同:
1. html是用来显示数据的;xml是用来描述数据、存放数据的,所以可以作为持久化的介质!Html将数据和显示结合在一起,在页面中把这数据显示出来;xml
则将数据和显示分开。 XML被设计用来描述数据,其焦点是数据的内容。HTML被设计用来显示数据,其焦点是数据的外观。
2. xml不是HTML的替代品,xml和html是两种不同用途的语言。 XML 不是要替换 HTML;实际上XML 可以视作对 HTML 的补充。XML 和HTML 的目标不同HTML 的设计目标是显示数据并集中于数据外观,而XML的设计目标是描述数据并集中于数据的内容。
3. 没有任何行为的XML。与HTML 相似,XML 不进行任何操作。(共同点)
4. 对于XML最好的形容可能是: XML是一种跨平台的,与软、硬件无关的,处理与传输信息的工具。
5. XML未来将会无所不在。XML将成为最普遍的数据处理和数据传输的工具。
当我们遇到后台返回的是一串html'字符串,这个字符串中包含的有imgURL标签和文字,而需要是把文字和图片分别展示出来, 这个时候就需要先把里面的图片url提取出来,然后在使用imageView展示。现在问题的关键是如何把所有的imgURL拿出来呢? 其实很简单, 一个正确的正则表达式 <(img|IMG)(.*?)(/>|></img>|>) 即可实现我们要的效果顺便附上一个移除html标签的方法