0
我正在为REST调用获取XML响应,其中包含多个子节点,用于每个条目。基本上任何Lookup
字段或User
字段导致子节点。 任何人都可以帮助我了解如何阅读这些子节点?由于元素名称是Id
或Email
这是重复的。对不起,很长的XML,但这是只提取2个项目的结果。如何从SharePoint REST API读取XML响应请拨打电话
<?xml version="1.0" encoding="utf-8"?>
<feed xml:base="https://ppespcollab.amat.com/sites/SSAS/_api/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml">
<id>f7f3e0d8-73aa-4bd9-a11c-c8d2c884895c</id>
<title />
<updated>2017-09-14T09:51:55Z</updated>
<entry m:etag=""5"">
<id>Web/Lists(guid'16b26978-b5d8-407a-a82d-e66017158895')/Items(160)</id>
<category term="SP.Data.RequestsListItem" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<link rel="edit" href="Web/Lists(guid'16b26978-b5d8-407a-a82d-e66017158895')/Items(160)" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Name" type="application/atom+xml;type=entry" title="Name" href="Web/Lists(guid'16b26978-b5d8-407a-a82d-e66017158895')/Items(160)/Name">
<m:inline>
<entry>
<id>d724a6a3-c532-4f43-baaf-f3a25bbaccca</id>
<category term="SP.Data.UserInfoItem" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<title />
<updated>2017-09-14T09:51:55Z</updated>
<author>
<name />
</author>
<content type="application/xml">
<m:properties>
<d:Id m:type="Edm.Int32">31210</d:Id>
<d:EMail>[email protected]</d:EMail>
</m:properties>
</content>
</entry>
</m:inline>
</link>
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Segment" type="application/atom+xml;type=entry" title="Segment" href="Web/Lists(guid'16b26978-b5d8-407a-a82d-e66017158895')/Items(160)/Segment">
<m:inline>
<entry>
<id>9d4306ec-4b01-4624-984b-79445b9d2ec1</id>
<category term="SP.Data.SegmentsListItem" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<title />
<updated>2017-09-14T09:51:55Z</updated>
<author>
<name />
</author>
<content type="application/xml">
<m:properties>
<d:Title>Test - TechM</d:Title>
<d:Id m:type="Edm.Int32">10</d:Id>
</m:properties>
</content>
</entry>
</m:inline>
</link>
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/BU" type="application/atom+xml;type=feed" title="BU" href="Web/Lists(guid'16b26978-b5d8-407a-a82d-e66017158895')/Items(160)/BU">
<m:inline>
<feed>
<id>7d3cf6e4-9fdc-4c21-90e9-5112b963dc49</id>
<title />
<updated>2017-09-14T09:51:55Z</updated>
<entry>
<id>44c3ff84-4650-4d85-a6dc-908639338be4</id>
<category term="SP.Data.Business_x0020_UnitsListItem" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<title />
<updated>2017-09-14T09:51:55Z</updated>
<author>
<name />
</author>
<content type="application/xml">
<m:properties>
<d:Title>CMP</d:Title>
<d:Id m:type="Edm.Int32">14</d:Id>
</m:properties>
</content>
</entry>
</feed>
</m:inline>
</link>
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Author0" type="application/atom+xml;type=feed" title="Author0" href="Web/Lists(guid'16b26978-b5d8-407a-a82d-e66017158895')/Items(160)/Author0">
<m:inline>
<feed>
<id>0f399745-10f4-40f0-be4e-1f9d69222d49</id>
<title />
<updated>2017-09-14T09:51:55Z</updated>
<entry>
<id>4c0509ce-62c4-4e90-9689-134b145b02a0</id>
<category term="SP.Data.UserInfoItem" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<title />
<updated>2017-09-14T09:51:55Z</updated>
<author>
<name />
</author>
<content type="application/xml">
<m:properties>
<d:Id m:type="Edm.Int32">31210</d:Id>
<d:EMail>[email protected]</d:EMail>
</m:properties>
</content>
</entry>
</feed>
</m:inline>
</link>
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/CC_x0020_List" type="application/atom+xml;type=feed" title="CC_x0020_List" href="Web/Lists(guid'16b26978-b5d8-407a-a82d-e66017158895')/Items(160)/CC_x0020_List" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Publication_x0020_Type" type="application/atom+xml;type=entry" title="Publication_x0020_Type" href="Web/Lists(guid'16b26978-b5d8-407a-a82d-e66017158895')/Items(160)/Publication_x0020_Type">
<m:inline>
<entry>
<id>a002d855-e51b-4f4f-b8ec-3725cf4aecb9</id>
<category term="SP.Data.Publication_x0020_TypeListItem" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<title />
<updated>2017-09-14T09:51:55Z</updated>
<author>
<name />
</author>
<content type="application/xml">
<m:properties>
<d:Title>Presentation</d:Title>
<d:Id m:type="Edm.Int32">2</d:Id>
</m:properties>
</content>
</entry>
</m:inline>
</link>
<title />
<updated>2017-09-14T09:51:55Z</updated>
<author>
<name />
</author>
<content type="application/xml">
<m:properties>
<d:Id m:type="Edm.Int32">160</d:Id>
<d:Title>asssfsfdsf</d:Title>
<d:End_x0020_Use>BLR</d:End_x0020_Use>
<d:Approval_x0020_Type>Parallel</d:Approval_x0020_Type>
<d:Due_x0020_Date m:type="Edm.DateTime">2017-09-26T05:00:00Z</d:Due_x0020_Date>
<d:Description>sdfssfsfssf</d:Description>
<d:Status>Submitted</d:Status>
<d:History>Request submitted by Ishan Halarnkar --CNTR on Wednesday, September 13, 2017 8&#58;15 AM</br></d:History>
<d:RequestID>2017_00000160</d:RequestID>
<d:EndUseYear>2014</d:EndUseYear>
<d:ID m:type="Edm.Int32">160</d:ID>
</m:properties>
</content>
</entry>
<entry m:etag=""7"">
<id>Web/Lists(guid'16b26978-b5d8-407a-a82d-e66017158895')/Items(159)</id>
<category term="SP.Data.RequestsListItem" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<link rel="edit" href="Web/Lists(guid'16b26978-b5d8-407a-a82d-e66017158895')/Items(159)" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Name" type="application/atom+xml;type=entry" title="Name" href="Web/Lists(guid'16b26978-b5d8-407a-a82d-e66017158895')/Items(159)/Name">
<m:inline>
<entry>
<id>b76cc22b-f985-444a-873a-46ae2cd0a10a</id>
<category term="SP.Data.UserInfoItem" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<title />
<updated>2017-09-14T09:51:55Z</updated>
<author>
<name />
</author>
<content type="application/xml">
<m:properties>
<d:Id m:type="Edm.Int32">6760</d:Id>
<d:EMail>[email protected]</d:EMail>
</m:properties>
</content>
</entry>
</m:inline>
</link>
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Segment" type="application/atom+xml;type=entry" title="Segment" href="Web/Lists(guid'16b26978-b5d8-407a-a82d-e66017158895')/Items(159)/Segment">
<m:inline>
<entry>
<id>6e70b80b-fff6-4662-8f53-26fc977f34ef</id>
<category term="SP.Data.SegmentsListItem" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<title />
<updated>2017-09-14T09:51:55Z</updated>
<author>
<name />
</author>
<content type="application/xml">
<m:properties>
<d:Title>Testing Segment 0917</d:Title>
<d:Id m:type="Edm.Int32">11</d:Id>
</m:properties>
</content>
</entry>
</m:inline>
</link>
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/BU" type="application/atom+xml;type=feed" title="BU" href="Web/Lists(guid'16b26978-b5d8-407a-a82d-e66017158895')/Items(159)/BU">
<m:inline>
<feed>
<id>f5e5e76d-07b7-442f-b6bf-73d9ed65e708</id>
<title />
<updated>2017-09-14T09:51:55Z</updated>
<entry>
<id>07bd9eed-23f7-4b10-8f38-42e0845f19ca</id>
<category term="SP.Data.Business_x0020_UnitsListItem" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<title />
<updated>2017-09-14T09:51:55Z</updated>
<author>
<name />
</author>
<content type="application/xml">
<m:properties>
<d:Title>ds Testing</d:Title>
<d:Id m:type="Edm.Int32">24</d:Id>
</m:properties>
</content>
</entry>
</feed>
</m:inline>
</link>
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Author0" type="application/atom+xml;type=feed" title="Author0" href="Web/Lists(guid'16b26978-b5d8-407a-a82d-e66017158895')/Items(159)/Author0">
<m:inline>
<feed>
<id>717cf9a2-9f0a-4265-bb32-1c90989ba6ed</id>
<title />
<updated>2017-09-14T09:51:55Z</updated>
<entry>
<id>4c593a4e-5c2e-4f1a-8c99-cb2d81b33af3</id>
<category term="SP.Data.UserInfoItem" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<title />
<updated>2017-09-14T09:51:55Z</updated>
<author>
<name />
</author>
<content type="application/xml">
<m:properties>
<d:Id m:type="Edm.Int32">6760</d:Id>
<d:EMail>[email protected]</d:EMail>
</m:properties>
</content>
</entry>
</feed>
</m:inline>
</link>
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/CC_x0020_List" type="application/atom+xml;type=feed" title="CC_x0020_List" href="Web/Lists(guid'16b26978-b5d8-407a-a82d-e66017158895')/Items(159)/CC_x0020_List" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Publication_x0020_Type" type="application/atom+xml;type=entry" title="Publication_x0020_Type" href="Web/Lists(guid'16b26978-b5d8-407a-a82d-e66017158895')/Items(159)/Publication_x0020_Type">
<m:inline>
<entry>
<id>62f94289-1e4b-4e83-94fe-1f518bde639b</id>
<category term="SP.Data.Publication_x0020_TypeListItem" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<title />
<updated>2017-09-14T09:51:55Z</updated>
<author>
<name />
</author>
<content type="application/xml">
<m:properties>
<d:Title>Presentation</d:Title>
<d:Id m:type="Edm.Int32">2</d:Id>
</m:properties>
</content>
</entry>
</m:inline>
</link>
<title />
<updated>2017-09-14T09:51:55Z</updated>
<author>
<name />
</author>
<content type="application/xml">
<m:properties>
<d:Id m:type="Edm.Int32">159</d:Id>
<d:Title>Test on 9/12/17</d:Title>
<d:End_x0020_Use>TPAS</d:End_x0020_Use>
<d:Approval_x0020_Type>Parallel</d:Approval_x0020_Type>
<d:Due_x0020_Date m:type="Edm.DateTime">2017-09-28T05:00:00Z</d:Due_x0020_Date>
<d:Description>testing email notices</d:Description>
<d:Status>Submitted</d:Status>
<d:History>Request delegated by Denise Schmidt (ds Testing - CTO) on Tuesday, September 12, 2017 2&#58;16 PM</br>Request approved by Denise Schmidt (ds Testing - Manager) on Tuesday, September 12, 2017 2&#58;15 PM</br>Request submitted by Denise Schmidt on Tuesday, September 12, 2017 2&#58;12 PM</br></d:History>
<d:RequestID>2017_00000159</d:RequestID>
<d:EndUseYear m:null="true" />
<d:ID m:type="Edm.Int32">159</d:ID>
</m:properties>
</content>
</entry>
我使用的代码,但没有给出预期的结果:
XmlDocument listXml = new XmlDocument();
XmlNamespaceManager xmlnspm = new XmlNamespaceManager(new NameTable());
xmlnspm.AddNamespace("atom", "http://www.w3.org/2005/Atom");
xmlnspm.AddNamespace("d", "http://schemas.microsoft.com/ado/2007/08/dataservices");
xmlnspm.AddNamespace("m", "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata");
listXml.LoadXml(response);
var prop = listXml.SelectNodes("//atom:entry/atom:content/m:properties", xmlnspm);
List<string> sdsd = new List<string>();
foreach (XmlNode ndlist in prop)
{
sdsd.Add(ndlist.SelectSingleNode("d:Id", xmlnspm).InnerXml +
ndlist.SelectSingleNode("d:EMail", xmlnspm).InnerXml +
ndlist.SelectSingleNode("d:Status", xmlnspm).InnerXml+
ndlist.SelectSingleNode("d:History", xmlnspm).InnerXml);
}
我期待的结果是: 对于每个条目,读取
- 如果名称然后名称(ID和电子邮件)
- 如果段,然后分段(名称和编号)
- 如果BU BU然后(名称和编号)
- 如果Author0然后Author0(Id和电子邮件) ......同样,对于所有的子节点 以及所有主要节点,我需要值
- 编号
- 标题
- End_x0020_Use
- Approval_x0020_Type
有什么办法序列化此数据在更可读的格式或我必须循环每个节点? 请建议最好的选择,因为我没有太多的XML数据经验。
如果XML结构是非常刚性的,不会改变则是你可以反序列化到一个强类型的类。 – Equalsk