[英]Retrieve Values manually from XML InnerXML
我一直在尝试将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>
是否有可能说出订户的价值
如果可以,我可以手动提取我想要的值。 不太理想,但是只有大约十...
我环顾四周,但没有找到可以工作的任何代码。
谁能给我任何指导?
谢谢
您可以使用LINQ to XML
来实现所需的目标:
XElement myXml = XElement.Load(@"XmlLocationHere");
XElement subscriber = myXml.Descendants("Subscriber").FirstOrDefault();
XElement.Descendants
以文档顺序返回此文档或元素的后代元素的集合。 此方法将返回IEnumerable<XElement>
,因为可能有多个“ Subscriber”元素,但是在您的情况下,我们选择FirstOrDefault
,它返回第一个匹配项。
尝试将 XML 加载到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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.