我一直在尝试将InnerXML反序列化为一个类,并且由于某种原因,XML不断改变形状,但是无论我多次试图让类正确,它似乎再次改变了形状。
所以我放弃了,并决定尝试另一种方法。
是否可以使用c#?
手动检索InnerXML中的参数值比如说,我的XML innerXML看起来像这样:
<Timestamp>2014-08-22T21:45:00Z</Timestamp>
<Subscriber>https://www.dogdoza.co.uk</Subscriber>
<Order>
<OrderID>111867</OrderID>
<InvoiceNumber>DOZA-9725410</InvoiceNumber>
<CustomerID>4542</CustomerID>
是否可以提出说出订阅者的价值
如果可以,我可以手动拉出我想要的值。不理想,但只有大约10 ...
我环顾四周但没有设法找到任何可以使用的代码..
任何人都可以给我任何指导吗?
由于
答案 0 :(得分:1)
您可以使用LINQ to XML
来实现您想要的目标:
XElement myXml = XElement.Load(@"XmlLocationHere");
XElement subscriber = myXml.Descendants("Subscriber").FirstOrDefault();
XElement.Descendants
按文档顺序返回此文档或元素的后代元素的集合。此方法将返回IEnumerable<XElement>
,因为可能有多个&#34;订阅者&#34;元素,但在您的情况下,我们选择FirstOrDefault
,它返回第一个匹配项。
答案 1 :(得分:0)
将您的XML loading改为XDocument。然后尝试使用XPathSelectElement找到您想要的特定值。
可能需要将内部xml包装到根元素中,因为它不接受多个根。
伪示例:
// set up your xml document
string xml = "<rootelement>" + myInnerXml + "</rootelement>";
XDocument doc = new XDocument();
doc.Parse(xml);
XElement subscriber = doc.XPathSelectElement("/rootelement/Subscriber");
string value = subscriber.Value;