c# - 如何将XmlNodeList转换为Xmlstring以将xml数据与数据集绑定(bind)

标签 c# asp.net xml

XmlDocument objXmldoc = new XmlDocument();
objXmldoc.Load(txtBrowseFilePath.Text);    
XmlNodeList objxmlNodeList=null;
    objxmlNodeList = objXmldoc.SelectNodes(@"/AppXmlLogWritter/LogData[LogDateTime/text()[starts-with(. , '" + dateTimePickerFromDate.Value.ToString("yyyyMMdd") + "')]]");

DataSet ds = new DataSet();         
ds.ReadXml(objxmlNodeList);

如何将XmlNodeList转换为Xmlstring以将xml数据与数据集绑定(bind)

xml文件

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<AppXmlLogWritter>
<LogData>
    <LogID>5678201301161640382918</LogID>
    <LogDateTime>20130116164037</LogDateTime>
    <LogType>Message</LogType>
    <LogFlag>RISLogFlag</LogFlag>
    <LogApplication>BaburaoLogApplication</LogApplication>
    <LogModule>RISLogModule</LogModule>
    <LogLocation>RISLogLocation</LogLocation>
    <LogText>BaburaoLogText</LogText>
  </LogData>
<LogData>
    <LogID>5678201301161640382919</LogID>
    <LogDateTime>20130116164038</LogDateTime>
    <LogType>Warning</LogType>
    <LogFlag>MACLogFlag</LogFlag>
    <LogApplication>MACLogApplication</LogApplication>
    <LogModule>MACLogModule</LogModule>
    <LogLocation>MACLogLocation</LogLocation>
    <LogText>MACLogText</LogText>
  </LogData>
</AppXmlLogWritter>

最佳答案

尝试这样的功能:

    private string XmlNodeListToString(XmlNodeList nodeList)
    {
        String returnStr = "";
        if (nodeList != null)
        {
            foreach (XmlNode node in nodeList)
            {
                returnStr += node.OuterXml;
            }

        }
        /*
        //I think this is not needed from Dataset.ReadXml
        returnStr = returnStr .Replace("&", "&amp;");
        returnStr = returnStr.Replace("<", "&lt;");
        returnStr = returnStr.Replace(">", "&gt;");
        returnStr = returnStr.Replace("'", "&apos;");
        returnStr = returnStr.Replace("\"", "&quot;");
        */


        return "<Root>"+returnStr+"</Root>";
    }

此外,从您的评论来看,您似乎遇到了长文件名问题。

尝试objXmldoc.Load(@txtBrowseFilePath.Text);

或者如果没有成功 尝试其他方法,例如在文件路径前面加上 \\?\ 正如我在 link 中发现的那样

例如,“\\?\D:\非常长的路径”

关于c# - 如何将XmlNodeList转换为Xmlstring以将xml数据与数据集绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14519131/

相关文章:

c# - 将图像从 xml 中的字节转换为 word 文档

c# - 如何在 ASP.NET 中返回 XML?

c# - 我将如何使用 c#/asp.net 去 abouce decodeURI

c# - 如何绘制选定的文本

c# - IIS 10.0 最大请求长度 .NET MVC

c# - ASP.NET MVC OWIN 和 SignalR - 两个 Startup.cs 文件

java - 如何在 Spring MVC 中使用 xml 配置提供默认 bean 实现?

c# - 使用 C# 呈现 HTML

c# - F# 项目自动生成绑定(bind)重定向

asp.net - ODP.NET 连接池问题 - 数据库宕机后的容错