Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中读取多个XML元素并写入SQL#_C#_Sql_Sql Server_Xml - Fatal编程技术网

C# 在C中读取多个XML元素并写入SQL#

C# 在C中读取多个XML元素并写入SQL#,c#,sql,sql-server,xml,C#,Sql,Sql Server,Xml,下面是我从web服务接收的XML。我对在C语言中使用XML非常陌生,但我试图仅当元素来自某个时才读取它们。我希望遍历所有XML,将发送的内容写入SQL。是否有一种简单的方法来设置它,以便我可以从特定的中找到并将其分配给字符串,然后使用该字符串写入SQL?一旦我可以将所有内容都转换成字符串,我就可以轻松地编写SQL,但我无法将XML转换成字符串。我也愿意接受其他选择。在底部,我有我目前的C# <?xml version="1.0" encoding="ISO-8859-1"?> <

下面是我从web服务接收的XML。我对在C语言中使用XML非常陌生,但我试图仅当
元素来自某个
时才读取它们。我希望遍历所有XML,将发送的内容写入SQL。是否有一种简单的方法来设置它,以便我可以从特定的
中找到
并将其分配给字符串,然后使用该字符串写入SQL?一旦我可以将所有内容都转换成字符串,我就可以轻松地编写SQL,但我无法将XML转换成字符串。我也愿意接受其他选择。在底部,我有我目前的C#

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE pnet_message_history_packet_response PUBLIC>
<pnet_message_history_packet_response>
    <packet_id>2</packet_id>
    <imessage>
        <vehicle_number>Test1</vehicle_number>
        <created_datetime>02/20/2017 19:33:28</created_datetime>
        <received_datetime>02/20/2017 19:33:53</received_datetime>
        <recipient>
            <recip_uid>1234</recip_uid>
            <recip_name>TestRecip</recip_name>
        </recipient>
        <msn>1233</msn>
        <base_msn>1234</base_msn>
        <message_type>form</message_type>
        <formdata>
            <form_id>55555</form_id>
            <im_field>
                <field_number>5</field_number>
                <empty_at_start>no</empty_at_start>
                <driver_modified>no</driver_modified>
                <data>
                    <data_text>Test5</data_text>
                </data>
            </im_field>
            <im_field>
                <field_number>6</field_number>
                <empty_at_start>yes</empty_at_start>
                <driver_modified>yes</driver_modified>
                <data>
                    <data_text>Test6</data_text>
                </data>
            </im_field>
            <im_field>
                <field_number>7</field_number>
                <empty_at_start>yes</empty_at_start>
                <driver_modified>yes</driver_modified>
                <data>
                    <data_text>Test7</data_text>
                </data>
            </im_field>
            <im_field>
                <field_number>8</field_number>
                <empty_at_start>yes</empty_at_start>
                <driver_modified>yes</driver_modified>
                <data>
                    <data_date-time>09/09/09 09:09:00</data_date-time>
                </data>
            </im_field>
            <im_field>
                <field_number>9</field_number>
                <empty_at_start>yes</empty_at_start>
                <driver_modified>yes</driver_modified>
                <data>
                    <data_date-time>09/09/09 09:09:00</data_date-time>
                </data>
            </im_field>
            <im_field>
                <field_number>10</field_number>
                <empty_at_start>no</empty_at_start>
                <driver_modified>no</driver_modified>
                <data>
                    <data_text>Test10</data_text>
                </data>
            </im_field>
        </formdata>
    </imessage>
    <imessage>
        <vehicle_number>Test1</vehicle_number>
        <created_datetime>02/20/2017 19:34:04</created_datetime>
        <received_datetime>02/20/2017 19:34:19</received_datetime>
        <recipient>
            <recip_uid>1234</recip_uid>
            <recip_name>TestRecip</recip_name>
        </recipient>
        <msn>1235</msn>
        <base_msn>1236</base_msn>
        <message_type>form</message_type>
        <formdata>
            <form_id>55555</form_id>
            <im_field>
                <field_number>5</field_number>
                <empty_at_start>no</empty_at_start>
                <driver_modified>no</driver_modified>
                <data>
                    <data_text>Test52</data_text>
                </data>
            </im_field>
            <im_field>
                <field_number>6</field_number>
                <empty_at_start>yes</empty_at_start>
                <driver_modified>yes</driver_modified>
                <data>
                    <data_text>Test62</data_text>
                </data>
            </im_field>
            <im_field>
                <field_number>7</field_number>
                <empty_at_start>yes</empty_at_start>
                <driver_modified>yes</driver_modified>
                <data>
                    <data_text>Test72</data_text>
                </data>
            </im_field>
            <im_field>
                <field_number>8</field_number>
                <empty_at_start>yes</empty_at_start>
                <driver_modified>yes</driver_modified>
                <data>
                    <data_date-time>09/08/09 09:08:00</data_date-time>
                </data>
            </im_field>
            <im_field>
                <field_number>9</field_number>
                <empty_at_start>yes</empty_at_start>
                <driver_modified>yes</driver_modified>
                <data>
                    <data_date-time>09/08/09 08:09:00</data_date-time>
                </data>
            </im_field>
            <im_field>
                <field_number>10</field_number>
                <empty_at_start>no</empty_at_start>
                <driver_modified>no</driver_modified>
                <data>
                    <data_text>Test102</data_text>
                </data>
            </im_field>
        </formdata>
    </imessage>
</pnet_message_history_packet_response>

2.
测试1
02/20/2017 19:33:28
02/20/2017 19:33:53
1234
TestRecip
1233
1234
形式
55555
5.
不
不
测试5
6.
对
对
测试6
7.
对
对
测试7
8.
对
对
09/09/09 09:09:00
9
对
对
09/09/09 09:09:00
10
不
不
测试10
测试1
02/20/2017 19:34:04
02/20/2017 19:34:19
1234
TestRecip
1235
1236
形式
55555
5.
不
不
测试52
6.
对
对
测试62
7.
对
对
测试72
8.
对
对
09/08/09 09:08:00
9
对
对
09/08/09 08:09:00
10
不
不
测试102
一些C#代码

受保护的void GetMessages()
{
XmlDocument xmldoc=新的XmlDocument();
xmldoc.PreserveWhitespace=false;
正则表达式正则表达式=新正则表达式(@“^\s+$[\r\n]*”;
String cleanedXml=regex.Replace(postXMLData(URL,前缀,“POST”),“>
静态void Main(字符串[]args)
{
var-xml=
@"
2.
测试1
02/20/2017 19:33:28
02/20/2017 19:33:53
1234
TestRecip
1233
1234
形式
55555
5.
不
不
测试5
6.
对
对
测试6
7.
对
对
测试7
8.
对
对
09/09/09 09:09:00
9
对
对
09/09/09 09:09:00
10
不
不
测试10
测试1
02/20/2017 19:34:04
02/20/2017 19:34:19
1234
TestRecip
1235
1236
形式
55555
5.
不
不
测试52
6.
对
对
protected void GetMessages()
        {
            XmlDocument xmldoc = new XmlDocument();
            xmldoc.PreserveWhitespace = false;

            Regex regex = new Regex(@"^\s+$[\r\n]*");
            String cleanedXml = regex.Replace(postXMLData(URL, prefix, "POST"), "><").TrimStart();
            xmldoc.LoadXml(cleanedXml);

            XmlNodeList messageList = xmldoc.GetElementsByTagName("imessage");

            foreach (XmlNode node in messageList)
            {
                XmlElement messageElement = (XmlElement)node;
                String Arrival;

                Arrival = messageElement.GetElementsByTagName("data_text")[0].InnerText;

                testTxtBx.Text += Arrival; //I am just trying to write to a Textbox now to see the results.
            }
        }
static void Main(string[] args)
                    {
                        var xml =
                            @"<pnet_message_history_packet_response>
                <packet_id>2</packet_id>
                <imessage>
                    <vehicle_number>Test1</vehicle_number>
                    <created_datetime>02/20/2017 19:33:28</created_datetime>
                    <received_datetime>02/20/2017 19:33:53</received_datetime>
                    <recipient>
                        <recip_uid>1234</recip_uid>
                        <recip_name>TestRecip</recip_name>
                    </recipient>
                    <msn>1233</msn>
                    <base_msn>1234</base_msn>
                    <message_type>form</message_type>
                    <formdata>
                        <form_id>55555</form_id>
                        <im_field>
                            <field_number>5</field_number>
                            <empty_at_start>no</empty_at_start>
                            <driver_modified>no</driver_modified>
                            <data>
                                <data_text>Test5</data_text>
                            </data>
                        </im_field>
                        <im_field>
                            <field_number>6</field_number>
                            <empty_at_start>yes</empty_at_start>
                            <driver_modified>yes</driver_modified>
                            <data>
                                <data_text>Test6</data_text>
                            </data>
                        </im_field>
                        <im_field>
                            <field_number>7</field_number>
                            <empty_at_start>yes</empty_at_start>
                            <driver_modified>yes</driver_modified>
                            <data>
                                <data_text>Test7</data_text>
                            </data>
                        </im_field>
                        <im_field>
                            <field_number>8</field_number>
                            <empty_at_start>yes</empty_at_start>
                            <driver_modified>yes</driver_modified>
                            <data>
                                <data_date-time>09/09/09 09:09:00</data_date-time>
                            </data>
                        </im_field>
                        <im_field>
                            <field_number>9</field_number>
                            <empty_at_start>yes</empty_at_start>
                            <driver_modified>yes</driver_modified>
                            <data>
                                <data_date-time>09/09/09 09:09:00</data_date-time>
                            </data>
                        </im_field>
                        <im_field>
                            <field_number>10</field_number>
                            <empty_at_start>no</empty_at_start>
                            <driver_modified>no</driver_modified>
                            <data>
                                <data_text>Test10</data_text>
                            </data>
                        </im_field>
                    </formdata>
                </imessage>
                <imessage>
                    <vehicle_number>Test1</vehicle_number>
                    <created_datetime>02/20/2017 19:34:04</created_datetime>
                    <received_datetime>02/20/2017 19:34:19</received_datetime>
                    <recipient>
                        <recip_uid>1234</recip_uid>
                        <recip_name>TestRecip</recip_name>
                    </recipient>
                    <msn>1235</msn>
                    <base_msn>1236</base_msn>
                    <message_type>form</message_type>
                    <formdata>
                        <form_id>55555</form_id>
                        <im_field>
                            <field_number>5</field_number>
                            <empty_at_start>no</empty_at_start>
                            <driver_modified>no</driver_modified>
                            <data>
                                <data_text>Test52</data_text>
                            </data>
                        </im_field>
                        <im_field>
                            <field_number>6</field_number>
                            <empty_at_start>yes</empty_at_start>
                            <driver_modified>yes</driver_modified>
                            <data>
                                <data_text>Test62</data_text>
                            </data>
                        </im_field>
                        <im_field>
                            <field_number>7</field_number>
                            <empty_at_start>yes</empty_at_start>
                            <driver_modified>yes</driver_modified>
                            <data>
                                <data_text>Test72</data_text>
                            </data>
                        </im_field>
                        <im_field>
                            <field_number>8</field_number>
                            <empty_at_start>yes</empty_at_start>
                            <driver_modified>yes</driver_modified>
                            <data>
                                <data_date-time>09/08/09 09:08:00</data_date-time>
                            </data>
                        </im_field>
                        <im_field>
                            <field_number>9</field_number>
                            <empty_at_start>yes</empty_at_start>
                            <driver_modified>yes</driver_modified>
                            <data>
                                <data_date-time>09/08/09 08:09:00</data_date-time>
                            </data>
                        </im_field>
                        <im_field>
                            <field_number>10</field_number>
                            <empty_at_start>no</empty_at_start>
                            <driver_modified>no</driver_modified>
                            <data>
                                <data_text>Test102</data_text>
                            </data>
                        </im_field>
                    </formdata>
                </imessage>
            </pnet_message_history_packet_response>";

                        XmlDocument xmldoc = new XmlDocument();
                        xmldoc.PreserveWhitespace = false;

                        Regex regex = new Regex(@"^\s+$[\r\n]*");
                        //String cleanedXml = regex.Replace(xml(URL, prefix, "POST"), "><").TrimStart();
                        xmldoc.LoadXml(xml);

                       // var list = from ws in doc.Descendants("formdata").ToList() ;

                        TextReader tr = new StringReader(xml);
                        XDocument doc = XDocument.Load(tr);

                        var list = (from root in doc.Descendants("imessage")
                                    select new
                        {
                            p = root.Element("vehicle_number") != null ? root.Element("vehicle_number").Value : string.Empty ,

                            formdata= (from fdata in root.Descendants("formdata")
                                       select new { x= fdata.Element("form_id") != null ? fdata.Element("form_id").Value : string.Empty ,  }
                                       ).ToList()
                        } 



                        ).ToList();


                        Console.ReadLine();
                    }
declare @xml xml

select @xml =
'


<pnet_message_history_packet_response>
    <packet_id>2</packet_id>
    <imessage>
        <vehicle_number>Test1</vehicle_number>
        <created_datetime>02/20/2017 19:33:28</created_datetime>
        <received_datetime>02/20/2017 19:33:53</received_datetime>
        <recipient>
            <recip_uid>1234</recip_uid>
            <recip_name>TestRecip</recip_name>
        </recipient>
        <msn>1233</msn>
        <base_msn>1234</base_msn>
        <message_type>form</message_type>
        <formdata>
            <form_id>55555</form_id>
            <im_field>
                <field_number>5</field_number>
                <empty_at_start>no</empty_at_start>
                <driver_modified>no</driver_modified>
                <data>
                    <data_text>Test5</data_text>
                </data>
            </im_field>
            <im_field>
                <field_number>6</field_number>
                <empty_at_start>yes</empty_at_start>
                <driver_modified>yes</driver_modified>
                <data>
                    <data_text>Test6</data_text>
                </data>
            </im_field>
            <im_field>
                <field_number>7</field_number>
                <empty_at_start>yes</empty_at_start>
                <driver_modified>yes</driver_modified>
                <data>
                    <data_text>Test7</data_text>
                </data>
            </im_field>
            <im_field>
                <field_number>8</field_number>
                <empty_at_start>yes</empty_at_start>
                <driver_modified>yes</driver_modified>
                <data>
                    <data_date-time>09/09/09 09:09:00</data_date-time>
                </data>
            </im_field>
            <im_field>
                <field_number>9</field_number>
                <empty_at_start>yes</empty_at_start>
                <driver_modified>yes</driver_modified>
                <data>
                    <data_date-time>09/09/09 09:09:00</data_date-time>
                </data>
            </im_field>
            <im_field>
                <field_number>10</field_number>
                <empty_at_start>no</empty_at_start>
                <driver_modified>no</driver_modified>
                <data>
                    <data_text>Test10</data_text>
                </data>
            </im_field>
        </formdata>
    </imessage>
    <imessage>
        <vehicle_number>Test1</vehicle_number>
        <created_datetime>02/20/2017 19:34:04</created_datetime>
        <received_datetime>02/20/2017 19:34:19</received_datetime>
        <recipient>
            <recip_uid>1234</recip_uid>
            <recip_name>TestRecip</recip_name>
        </recipient>
        <msn>1235</msn>
        <base_msn>1236</base_msn>
        <message_type>form</message_type>
        <formdata>
            <form_id>55555</form_id>
            <im_field>
                <field_number>5</field_number>
                <empty_at_start>no</empty_at_start>
                <driver_modified>no</driver_modified>
                <data>
                    <data_text>Test52</data_text>
                </data>
            </im_field>
            <im_field>
                <field_number>6</field_number>
                <empty_at_start>yes</empty_at_start>
                <driver_modified>yes</driver_modified>
                <data>
                    <data_text>Test62</data_text>
                </data>
            </im_field>
            <im_field>
                <field_number>7</field_number>
                <empty_at_start>yes</empty_at_start>
                <driver_modified>yes</driver_modified>
                <data>
                    <data_text>Test72</data_text>
                </data>
            </im_field>
            <im_field>
                <field_number>8</field_number>
                <empty_at_start>yes</empty_at_start>
                <driver_modified>yes</driver_modified>
                <data>
                    <data_date-time>09/08/09 09:08:00</data_date-time>
                </data>
            </im_field>
            <im_field>
                <field_number>9</field_number>
                <empty_at_start>yes</empty_at_start>
                <driver_modified>yes</driver_modified>
                <data>
                    <data_date-time>09/08/09 08:09:00</data_date-time>
                </data>
            </im_field>
            <im_field>
                <field_number>10</field_number>
                <empty_at_start>no</empty_at_start>
                <driver_modified>no</driver_modified>
                <data>
                    <data_text>Test102</data_text>
                </data>
            </im_field>
        </formdata>
    </imessage>
</pnet_message_history_packet_response>


'


declare @holder table ( FormId int, DataText varchar(64) )

insert into @holder (FormId, DataText)


SELECT 
     T.MyEntity.value('../../form_id[1]', 'INT') AS ProgramId
    ,T.MyEntity.value('data_text[1]', 'VARCHAR(256)') AS SharedAccessKeyName
FROM @xml.nodes('pnet_message_history_packet_response/imessage/formdata/im_field/data') AS T(MyEntity);


select * from @holder