/ / XDocument変数のXMLコンテンツを抽出する方法は? -.net、xml、linq-to-xml

どのようにXDocument変数のXMLコンテンツを抽出するのですか? - .net、xml、linq-to-xml

このようなAPIから取得したXDocument変数に完全なXMLファイルがあります

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

XMLの構造を取得する必要がありますノードをナビゲートしますが、XDocument変数を使用すると、ドキュメント全体を1つのノードで取得するだけで、各ノードを単独で抽出することはできません。それで、解決策はありますか、それとも別の方法を使用しますか?

回答:

回答№1は2

http://www.hookedonlinq.com/LINQtoXML5MinuteOverview.ashx それを構築する上で良い記事です

linqを使用してクエリを実行することもできます

例えば

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");

上にリンクしたページを削除しました。

私の意見では、XDocumentオブジェクトとXElementオブジェクトはお尻を蹴ります。 それらが気に入らない場合は、xpathとxsltを学んでください。


回答№2の場合は1

あなたの直接の子ノードを取得するには XDocument あなたが試すことができます

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

次に、次のようなさらなる処理を行います childElements.Descendants("name").Single().Value.


回答№3の場合は0
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();

彼はXMLDocumentオブジェクトではなくXDocumentオブジェクトを使用しています。 –ジョンニコラス52秒前

くそー、あなたは正しいです。ごめんなさい!助けようとしただけです...


回答№4の場合は0
XmlDocument xdoc;
xdoc = new XmlDocument();
xdoc.Load(XmlReader.Create("weblink"));

XDocumentを分析して、XmlDocumentで可能なXML値を抽出することはできません。