[英]SOAP Response to DataTable in C#
我一直在搜索并尝试以多种形式将XML响应以与Excel相同的方式传递给简单的DataTable。
XML就像:
<?xml version="1.0" standalone="no"?>
<SOAP-ENV:Envelope xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema" xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAPSDK4:Function xmlns:SOAPSDK4="http://www.externalwebservice.com/message/">
<Lists>
<ListCode>12345</ListCode>
<ListGroups>
<ListGroup>
<CodeGroup>ASDF</CodeGroup>
<DescriptionGroup>Example</DescriptionGroup>
</ListGroup>
</ListGroups>
<List>
<CodeList>ABC</CodeList>
<DescriptionList>Example List</DescriptionList>
<ListCategories>
<ListCategory>Type1</ListCategory>
<ListCategory>Type2</ListCategory>
</ListCategories>
<ListKinds>
<Kind>
<KindType>A</KindType>
<KindTarget>1</KindTarget>
<KindAttributes>
<KindAttribute1>A</KindAttribute1>
<KindAttribute2>B</KindAttribute2>
</KindAttributes>
</Kind>
</ListKinds>
</List>
</Lists>
</SOAPSDK4:Function>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Excel所做的工作可以帮助我满足需要,那就是用此数据及其关系填充4个表。
我试过使用DataSet.ReadXML,但是它的问题是由于某种原因,此方法生成14个表,而数据却毫无用处,因为根本没有关系。 后来我尝试使用DataTable.ReadXML,但是它给了我一个问题:“ DataTable不支持从Xml进行模式推断。” 然后尝试使用DataTable.ReadXmlSchema(XML),它给出了没有根文档的错误,然后我用命令提示符创建了一个XSD,并且生成的两个给出了错误,最后我使用Visual Studio生成了XSD,它生成了4 XSD没有错误,但是没有创建任何列,也没有添加任何数据。
我现在没主意了。 有什么建议么? 也许不是没有标准化数据的DataTable(Excel做什么),而是直接与XML结合的另一种方法?
谢谢。
我的建议是使用C#3中的Linq.XML技术。LINQ to XML提供了一个内存XML编程接口,该接口利用了.NET语言集成的查询(LINQ)框架。 LINQ to XML使用最新的.NET Framework语言功能,可与经过重新设计的更新的文档对象模型(DOM)XML编程接口进行比较。
在http://www.hookedonlinq.com/LINQtoXML5MinuteOverview.ashx上提供了一些有趣的快速相关示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.