提取XML数据,修改它并存储在excel文件中

时间:2013-05-16 00:14:56

标签: c# xml linq xml-parsing linq-to-xml

我是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文件很大,我想要...我必须只处理每个新闻项的和<text>字段中的术语。另外,我必须计算这些词的频率。</p> <p>我尝试从标题和文本字段中提取文本。我获得了标题字段的数据但没有获取文本字段。而且,在标题领域,我没有得到独特的元素,元素正在重复。请帮帮我。</p> <p>我尝试的代码是:</p> <pre><code> 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(); } </code></pre> <p>在列表框中,我正在获取数据但在文本框中我没有获取数据。此外,我需要存储巨大的xml数据并计算每个单词的数量。例如china-2,说-1并将其存储在excel中。你能告诉我,我应该使用字符串构建器吗?如果是,请问如何使用?</p> </div> <div class="answer-list"> <h4>1 个答案:</h4> <div class="hr-line-dashed"></div> <p>答案 0 :(得分:0)</p> <div class="answer markdown-body"> <p>这应该让你开始:</p> <pre><code>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; </code></pre> <p>我使用上面的XML片段作为示例。您需要根据最终的XML结构进行调整,但我认为通过上述模式,您应该能够满足您的需求。</p> <p>变量<code>title</code>将是<code><title></code>元素的文本,变量<code>text</code>将是<code><text></code>元素中找到的所有元素的连接文本。通过这种方式,您最终会得到<code>String</code>变量,您可以执行标准文本处理,以实现获取字数等目标。</p> <p>希望这有帮助!</p> </div> </div> </div> <div class="right"> <div style="height:400px"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6263610230477973" data-ad-slot="2820756182" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div style="height:20px"></div> <div class="releated-question-wrapper"> <div class="header"> 相关问题 </div> <div class="hr-line-dashed"></div> <ul> <li> <a href="/q/1573740">在Excel中提取数据并在另一个工作表中转置/格式化它</a> </li> <li> <a href="/q/11319972">从XML文件加载数据并将其存储在javascript对象中</a> </li> <li> <a href="/q/16577038">提取XML数据,修改它并存储在excel文件中</a> </li> <li> <a href="/q/23851735">使用libXML / XPath提取和存储XML数据</a> </li> <li> <a href="/q/29367130">在VBA中下载文件并存储它</a> </li> <li> <a href="/q/37452666">在excel文件中提取和复制数据</a> </li> <li> <a href="/q/44753348">从XML中提取值并将其存储在变量中</a> </li> <li> <a href="/q/45279577">从一个工作簿中提取数据并将其粘贴到另一个工作簿中</a> </li> <li> <a href="/q/45860824">从txt文件读取数据并将其存储在excel文件中时出现宏问题</a> </li> <li> <a href="/q/45955209">从JSON中提取数据并修改数据</a> </li> </ul> </div> <div class="releated-question-wrapper"> <div class="header"> 最新问题 </div> <div class="hr-line-dashed"></div> <ul> <li> <a href="/q/68614764">我写了这段代码,但我无法理解我的错误</a> </li> <li> <a href="/q/68614678">我无法从一个代码实例的列表中删除 None 值,但我可以在另一个实例中。为什么它适用于一个细分市场而不适用于另一个细分市场?</a> </li> <li> <a href="/q/68614175">是否有可能使 loadstring 不可能等于打印?卢阿</a> </li> <li> <a href="/q/68614313">java中的random.expovariate()</a> </li> <li> <a href="/q/68614125">Appscript 通过会议在 Google 日历中发送电子邮件和创建活动</a> </li> <li> <a href="/q/68615109">为什么我的 Onclick 箭头功能在 React 中不起作用?</a> </li> <li> <a href="/q/68615123">在此代码中是否有使用“this”的替代方法?</a> </li> <li> <a href="/q/68614097">在 SQL Server 和 PostgreSQL 上查询,我如何从第一个表获得第二个表的可视化</a> </li> <li> <a href="/q/68614427">每千个数字得到</a> </li> <li> <a href="/q/68615239">更新了城市边界 KML 文件的来源?</a> </li> </ul> </div> <div class=""> </div> </div> </div> <div> <script> var host = window.location.host; if (host == "www.thinbug.com") { (function () { var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); } </script> </body> </html>