将标签上的字符串拆分为多个文本框

时间:2012-01-12 11:37:56

标签: string windows-phone-7 textblock

我不知道在哪里搜索解决方案。

我有一个包含标签"< p >"和“&lt; / p&gt;”的字符串,以及“&lt; h1&gt;”和“&lt; / h1&gt;”对于标题,以及“&lt; a&gt;&lt; / a&gt;”链接。该字符串通过app.current传递到第二页,当我将其设置为文本块的源时,我看到了整个字符串。

现在我的问题: 我想在每个“&lt; p&gt;”上创建一个新的TextBlock,其中包含直到“&lt; / p&gt;”的文本。标题相同,因为我想以不同的方式设置它们。我希望在列表中看到的链接。

我尝试了几件事,但没有找到合适的解决方案。我的最后一次尝试是使用这个http://www.eugenedotnet.com/2011/04/binding-text-containing-tags-to-textblock-inlines-using-attached-property-in-silverlight-for-windows-phone-7/。我无法根据自己的需要改变这一点。

我想从我的字符串创建子字符串,并为每个子字符串创建一个带有/或新TextBlock的新运行。没搞清楚。

我真的没有任何想法。任何人都有任何想法?

2 个答案:

答案 0 :(得分:1)

我建议使用HtmlAgilityPack来解析HTML。

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(yourString);

string header = doc.DocumentNode.SelectSingleNode("h1").InnerText;

List<string> paragraphs = doc.DocumentNode.SelectNodes("p")
    .Select(p => p.InnerText).ToList();

获取WP7的HtmlAgilityPack的最简单方法是安装NuGet,右键单击References并选择“管理NuGet包”,然后搜索“{1}}的”在线“。

答案 1 :(得分:0)

为了稍微扩展Richard Szalay的答案,NuGet上的HTML Agility Pack版本似乎不包括已添加的WP7特定实现。在this question中有对HAPPhone版本的引用,可以从HTML AGility Pack project page下载,并且在手机上运行良好。

不幸的是,您必须下载源并自行构建/手动添加引用。我想NuGet版本会及时更新,但是当我上周这样做时,这是唯一的方法。