1

我是 asp.net 的新手。我有一个xml文件如下:

<?xml version="1.0" encoding="iso-8859-1" ?>
<newsitem itemid="10000" id="root" date="1996-08-22" xml:lang="en">
  <title>CHINA: China says hopeful on global nuclear test ban.</title>
  <headline>China says hopeful on global nuclear test ban.</headline>
  <dateline>BEIJING 1996-08-22</dateline>
  <text>
    <p>China said on Thursday it was hopeful a global nuclear test ban treaty could be approved by the U.N. </p>
    <p>&quot;China hopes that the treaty could be open for signature by the end of the year and that there .</p>
    </text>
.....continue

xml 文件很大,我想要那个..我只需要处理每个新闻项目的 ‹title› 和 ‹text› 字段中的术语。另外,我必须计算这些词的频率。

我试图从标题和文本字段中提取文本。我得到了标题字段的数据,但没有得到文本字段的数据。此外,在标题字段中,我没有得到独特的元素,这些元素正在重复。请帮我。

我试过的代码是:

 string filename = Server.MapPath("demo1.xml");
        XmlTextReader reader = new XmlTextReader(filename);
        XmlNodeType type;

        while (reader.Read())
        {
            type = reader.NodeType;

            if (type == XmlNodeType.Element)
            {
                if (reader.Name == "text")
                {
                    reader.Read();
                    TextBox1.Text = reader.Value;
                }

              if (reader.Name == "title")
                {
                    reader.Read();
                    ListBox1.Items.Add(reader.Value);

                }

            }
        }
        reader.Close();
    }

在列表框中,我正在获取数据,但在文本框中我没有获取数据。此外,我需要存储大量的 xml 数据并计算每个单词的数量。例如 china-2,says-1 并将其存储在 excel 中。你能告诉我我应该使用字符串生成器吗?如果是,如何?

4

1 回答 1

0

这应该让你开始:

var xml = XElement.Load(new FileStream(@"C:\TEMP\TEST.xml", FileMode.Open));

var titleElement = xml.Elements("title").SingleOrDefault();
var title = titleElement != null ? titleElement.Value : String.Empty;
var textElement = xml.Elements("text").SingleOrDefault();
var text = textElement != null
               ? String.Join(String.Empty, textElement.Elements()
                                                      .Select(t => t.Value))
               : String.Empty;

我以您上面的 XML 片段为例。您可能希望将其调整为最终的 XML 结构,但我认为通过上述模式,您应该能够使其适合您的需要。

变量title将是<title>元素的文本,变量text将是在元素中找到的所有元素的连接文本<text>。通过这种方式,您最终String会得到可以执行标准文本处理的变量,以实现获得字数等的目标。

希望这可以帮助!

于 2013-05-16T01:33:20.057 回答