2
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>
4

1 に答える 1

2

そのような機能を試してください:

    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);

または、成功しない場合は、このリンク\\?\ でわかったように、ファイルパスの前に次のようなものを試してください

たとえば、"\\?\D:\very long path".

于 2013-01-25T09:55:39.983 に答える