/ / Ako extrahovať obsah XML premennej XDocument? - .net, xml, linq-to-xml

Ako extrahovať obsah XML premennej XDocument? - .net, xml, linq-to-xml

Mám plný súbor XML v premennej XDocument, ktorú dostanem z nejakého API

using (var reader = XmlReader.Create("website"))
{
doc = XDocument.Load(reader);
}

Musím získať štruktúru XML aprechádzať jeho uzlami, ale prostredníctvom premennej XDocument, dostanem len celý dokument v jednom uzle a nemôžem extrahovať každý uzol sám. Takže akékoľvek riešenie alebo mám použiť iný spôsob?

odpovede:

2 pre odpoveď č. 1

http://www.hookedonlinq.com/LINQtoXML5MinuteOverview.ashx je dobrý článok o jeho vybudovaní

môžete tiež použiť linq na dotaz

napríklad

var loaded = XDocument.Load("sdaf");
var q = from c in loaded.Descendants("contact")
where (int)c.Attribute("contactId") < 4
select (string)c.Element("firstName") + “ “ +
(string)c.Element("lastName");

stiahnuté zo stránky, na ktorú som odkazoval vyššie.

XDocument a XElement objekty nakopnú zadok podľa môjho názoru. Ak sa im nepáči, potom sa naučíte xpath a xslt.


1 pre odpoveď č. 2

Ak chcete získať bezprostredné podriadené uzly vášho XDocument si môžete vyskúšať

    using (var reader = XmlReader.Create("website"))
{
var doc = XDocument.Load(reader);
var childElements = doc.Elements();
}

Potom vykonajte ďalšie spracovanie, ako napr childElements.Descendants("name").Single().Value.


0 pre odpoveď č. 3
string xml = reader.ReadToEnd();

XmlDocument thisXmlDoc = new XmlDocument();
thisXmlDoc.LoadXml(xml); // In your case DOC

reader.Close();

XPathNavigator thisNavigator = thisXmlDoc.CreateNavigator();
XPathNodeIterator dossierNodes = thisNavigator.Select("Nodename/node");

List<Dossier> thisList = GetDossiers(dossierNodes);
thisDossierList = thisList.OrderBy(c => c.something).ToList();

používa objekty XDocument, nie objekty XMLDocument. - John Nicholas pred 52 sekundami

Sakra, ty si správne.


0 pre odpoveď č. 4
XmlDocument xdoc;
xdoc = new XmlDocument();
xdoc.Load(XmlReader.Create("weblink"));

XDocument nie je možné analyzovať a extrahovať jeho hodnoty XML, ktoré sú možné v XmlDocument