【问题标题】:Extract text from XML using C#使用 C# 从 XML 中提取文本
【发布时间】:2012-02-08 15:37:51
【问题描述】:

我使用如下所示的 XML 文档:

我只需要提取标签之间的文本。因为它被一个普通的 XML 编辑器成功地以黑色突出显示,我假设我应该能够手动提取它?

到目前为止,我已经尝试了以下方法:

private void Form1_Load(System.Object sender, System.EventArgs e)
{
    XmlDocument doc = new XmlDocument();
    doc.Load("C:\\users\\admin\\desktop\\index.xml");

    foreach (object node_loopVariable in doc.ChildNodes) {
        node = node_loopVariable;
        ProcNode(node);
    }
}

private void ProcNode(XmlNode node)
{
    Console.WriteLine(node.InnerText);

    foreach (XmlNode subNode in node.ChildNodes) {
        Console.WriteLine(subNode.InnerText);
    }
}

这是一个可靠的解决方案吗?

【问题讨论】:

  • 一个实际的 XML sn-p(而不是 XML 的屏幕截图)会很有帮助。到目前为止你写了什么代码?您是否尝试过 Linq to XML?一个 XmlReader?一个 XML 文档?什么有效/无效?
  • 我是否可以建议您将 XML 文档中您真正感兴趣的部分拆分为一种更易于阅读的格式?到目前为止,您还尝试过什么来进行 XML 解析。您对使用哪种类型的解析器感兴趣?
  • 为什么不使用 DOM 或 SAX 之类的工具?
  • 如果你展示你提取文本的尝试并描述失败的地方会更容易。

标签: c# xml parsing text


【解决方案1】:

使用XDocument 类读取XML 并使用LINQ to XML 查询它。

【讨论】:

    【解决方案2】:

    你可以这样做:

    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.Load(HttpContext.Current.Server.MapPath("App_Data/file.xml"));
    XmlElement xelNo = xmlDoc.GetElementById("ElementID");
    

    然后您可以访问此元素的属性或文本;
    但要使用它,您必须知道元素的 ID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-15
      • 1970-01-01
      相关资源
      最近更新 更多