2013-01-25 25 views
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数据如何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> 
+0

请添加一些示例xml,其中应执行选择节点 – iltzortz

+0

我已添加.......... – John

+0

好的没有什么。似乎是一个长文件路径名称问题。再次检查我的回答结束 – iltzortz

回答

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

,或者如果它不成功 尝试其他的东西像\\?\前面的文件路径,因为我在这个link

例如,"\\?\D:\very long path"发现。

+0

你的解决方案是正确itzortz但让我错误路径非法字符 – John

+0

我已经尝试node.ParentNode.OuterXml;但也。 – John

+0

指定的路径,文件名或这两者太长。完全限定的文件名必须少于260个字符,且目录名称必须少于248个字符。 – John