C# 如何加载XML文档以显示为特定的输入格式

C# 如何加载XML文档以显示为特定的输入格式,c#,xml,soap,C#,Xml,Soap,我目前正在尝试将一个XML文档加载到一个C程序中,以便可以将其作为soap请求发送 这是我试图引用的XML文档。它可能有无限多行 <?xml version="1.0" encoding="UTF-8" ?> <ROWSET> <ROW num="1"> <USER_ID></USER_ID> <FIRST_NAME>John</FIRST_NAME> <MIDDLE_NA

我目前正在尝试将一个XML文档加载到一个C程序中,以便可以将其作为soap请求发送

这是我试图引用的XML文档。它可能有无限多行

<?xml version="1.0" encoding="UTF-8" ?>
<ROWSET>
  <ROW num="1">
     <USER_ID></USER_ID>
     <FIRST_NAME>John</FIRST_NAME>
     <MIDDLE_NAME></MIDDLE_NAME>
     <LAST_NAME>Doe</LAST_NAME>
     <EMPLOYEE_NO>12345</EMPLOYEE_NO>
     <HOME_PHONE></HOME_PHONE>
     <EMPLOYEE_STATUS_>A</EMPLOYEE_STATUS_>
     <HIRE_DATE>05/17/2010</HIRE_DATE>
     <DEPARTMENT>Engineering</DEPARTMENT>
     <POSITION>Controls Engineer</POSITION>
     <SHIFT>N</SHIFT>
     <REPORTS_TO>Everhart,Robert</REPORTS_TO>
     <PAY_TYPE>H</PAY_TYPE>
     <EMPLOYEE_TYPE>R</EMPLOYEE_TYPE>
     <TERMINATION_DATE></TERMINATION_DATE>
     <PCN_CODE>Company_RV</PCN_CODE>

  </ROW>
  <ROW num="2">
     <USER_ID>RV12345</USER_ID>
     <FIRST_NAME>Jane</FIRST_NAME>
     <MIDDLE_NAME>G</MIDDLE_NAME>
     <LAST_NAME>Doe</LAST_NAME>
     <EMPLOYEE_NO>123455</EMPLOYEE_NO>
     <HOME_PHONE></HOME_PHONE>
     <EMPLOYEE_STATUS_>A</EMPLOYEE_STATUS_>
     <HIRE_DATE>09/15/2008</HIRE_DATE>
     <DEPARTMENT>Shipping</DEPARTMENT>
     <POSITION>Shipping Coordinator</POSITION>
     <SHIFT>2</SHIFT>
     <REPORTS_TO>Hajkova,Karin</REPORTS_TO>
     <PAY_TYPE>H</PAY_TYPE>
     <EMPLOYEE_TYPE>R</EMPLOYEE_TYPE>
     <TERMINATION_DATE></TERMINATION_DATE>
     <PCN_CODE>Company_RV</PCN_CODE>
我需要将此文件格式化为:

<ResultSet>
    <RowCount>1</RowCount>
    <Rows>
       <Row>
         <Columns>
           <Column>
             <Value>jdoe</Value>
             <Name>User_ID</Name>
           </Column>
           <Column>
             <Value>John</Value>
             <Name>FIRST_NAME</Name>
       and so forth

加载xml文件并将其转换为正确格式后,包含xml数据的变量将被放入soap信封中。

尝试将xsd工具与原始xml一起使用,以便创建类来序列化内存中的xml

然后使用XmlSerializer将所有内容放入memmory:

XmlSerializer serializer = new XmlSerializer(XmlClassTypeYouCreatedOnXsdTool);
XmlReader reader = new XmlTextReader(xml);
var instance = serializer.Deserialize(reader);
对要创建的输出xml表单使用相同的xsd工具,以形成另一个可序列化类


创建函数以将一个对象转换为另一个对象,然后将该对象发送到SOAP webreferences,或者使用相同的XmlSerializer并调用Serialize来生成SOAP消息的XML。

您尝试过如何重新格式化该对象?当您尝试这样做时,您遇到了哪些错误?到目前为止,我还没有尝试重新格式化。我正在努力确定最好的解决办法是什么。这是我的第一个web服务项目,因此在我这方面一切都很新。如何指定模式使用名称/值对?*当涉及到C语言和格式化xml时,我是相当生疏的。用更简单的方法,你可能会创建一个类ResultColumn?具有两个属性:“名称”和“值”。这是更简单的方法。但同样,制作一个XML作为示例并运行xsd定制工具,您应该立即获得您的类!要使用此工具,请不要忘记运行Visual Studio命令提示符,否则将找不到xsd.exe工具。