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数据与数据集绑定

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:\very long path"

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

10-10 20:15