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ď č. 1http://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