繁体   English   中英

从XML InnerXML手动检索值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM