【发布时间】:2013-12-06 12:09:22
【问题描述】:
我正在为一个应用程序开发“搜索”功能,在该应用程序中我在 XML 内容中搜索关键字。我只需要搜索纯文本,即没有 xml 标签或单词字段。下面是我用来读取文本的代码的 sn-p(不包括 XML 标签和二进制数据):
StringBuilder result = new StringBuilder();
var reader = System.Xml.XmlReader.Create(new System.IO.StringReader(strXmlContent));
while (reader.Read())
{
if (reader.Name == "pkg:binaryData" || reader.Name == "w:binData")
{
reader.Skip();
}
if (reader.NodeType == XmlNodeType.Text)
{
result.Append(reader.Value);
}
}
//Plain text without XML tags.
string plainText = result.ToString();
if (txt.ToLower().Contains(SearchText.ToLower()))
{
// display search results
}
但是我发现,由于这个xml实际上存储的是Word文档内容,它还包含Word字段如:(REF _Ref325306498 \h * MERGEFORMAT 图1和REF _Ref325306499 \h * MERGEFORMAT 图2)
这里我要搜索的内容是“(图1和图2)”。 但我找不到此文本,因为它还包含 MERGEFORMAT 和其他 Word 字段。
我怎样才能从这个 xml 数据中只读取纯文本?
【问题讨论】: