首页 > 解决方案 > 如何使用 xpath 读取 XML 文件的头信息

问题描述

期望的输出

在此处输入图像描述

我正在尝试使用 xpath 读取 xml 文档。我能够阅读一些元素,但有些不能。我正在尝试读取此 xml 文件并将此信息写入 excel 文件中

我尝试了以下

    class Program
    {
        static void Main(string[] args)
        {
            XmlDocument xmlDoc = new XmlDocument();

 xmlDoc.Load("C:/Users/mypc/Documents/project/myfile.xml");
            XmlNode titleNode = xmlDoc.SelectSingleNode("//header");
            using (StreamWriter outputFile = new StreamWriter("C:/Users/myuser/Documents/project/WriteLines.txt"))
            {
                if (titleNode != null)
                    Console.WriteLine(titleNode.InnerText.ToString());
                outputFile.WriteLine(titleNode.InnerText);
            }
            Console.ReadKey();
        }
    }

我的 xml 文件看起来像这样

<header version="2.0">
    <phone>1234567</phone>
    <houseNumber>45</houseNumber>
    <date>2015-09-19</date>
    <deliveryId>12345696015</deliveryId>
  </header>

有什么办法可以阅读孩子并将其写入excel文件吗?

标签: c#xpath

解决方案


希望此代码对您有所帮助.. {

        DataTable dt = new System.Data.DataTable();  
        dt.TableName = "Details";  
       dt.Columns.Add("phone", typeof(string));  
        dt.Columns.Add("houseNumber", typeof(string));  
         dt.Columns.Add("date", typeof(string));  
        dt.Columns.Add("deliveryId", typeof(string)); 

        dt.Rows.Add("1234567", "45","2015-09-19","KV12_3896096015");  


       //Create Temp directory to save xml file  
        var tempDir = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());  
         Directory.CreateDirectory(tempDir);  
        string path = Path.Combine(tempDir, string.Format("{0}.{1}", "Prodcuts", "xml"));  
       //Write to xml file  
        dt.WriteXml(path, System.Data.XmlWriteMode.IgnoreSchema);  

        //Create HttpClient and MultipartFormDataContent  
        using (var client = new HttpClient())  
        using (var formData = new MultipartFormDataContent())  
        using (var fromFile=File.OpenRead(path))  
        {  

            formData.Add(new StringContent("Test"), "FileName");  
            formData.Add(new StringContent("xlsx"), "FileFormat");  
            formData.Add(new StreamContent(fromFile), "DataFile",Path.GetFileName(path));  
            //Call WebAPI  
            var response = client.PostAsync(webapiURL, formData).Result;  
            if (!response.IsSuccessStatusCode)  
            {  
                MessageBox.Show("Invalid response.");  
                return;  
            }  
            var tempPath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());  
            if (!Directory.Exists(tempPath))  
            {  
                Directory.CreateDirectory(tempPath);  
            }  
            //Save Excel file to Temp directory  

}


推荐阅读