我是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>"China hopes that the treaty could be open for signature by the end of the year and that there .</p>
</text>
.....continue
xml文件很大,我想要...我必须只处理每个新闻项的
我尝试从标题和文本字段中提取文本。我获得了标题字段的数据但没有获取文本字段。而且,在标题领域,我没有得到独特的元素,元素正在重复。请帮帮我。
我尝试的代码是:
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,说-1并将其存储在excel中。你能告诉我,我应该使用字符串构建器吗?如果是,请问如何使用?
答案 0 :(得分: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
变量,您可以执行标准文本处理,以实现获取字数等目标。
希望这有帮助!