このようなAPIから取得したXDocument変数に完全なXMLファイルがあります
using (var reader = XmlReader.Create("website"))
{
doc = XDocument.Load(reader);
}
XMLの構造を取得する必要がありますノードをナビゲートしますが、XDocument変数を使用すると、ドキュメント全体を1つのノードで取得するだけで、各ノードを単独で抽出することはできません。それで、解決策はありますか、それとも別の方法を使用しますか?
回答:
回答№1は2http://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値を抽出することはできません。