<C#>XDocumentに触ってみる
さて、今回はLINQ to XMLに入ります。
というのも外部URLからデータを取得しようとすると手段が悉く潰れてしまい、XDocumentだけが生き残ったためです。
これに関してはリクエストを取得するとかで私の技術向上によっては対応するかもしれません
今回は「さわり」ということで先日に作成したXMLを読み込み、値をコンソール上に表示させるメソッドを作成しました。
サンプルXML
<?xml version="1.0" encoding="utf-8"?> <nanashi-san xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <nanashi-sans> <nanashi-san id="0"> <name>名無しさん</name> <hororific>さん</hororific> </nanashi-san> <nanashi-san id="1"> <name>名無しくん</name> <hororific>くん</hororific> </nanashi-san> <nanashi-san id="2"> <name>名無しさま</name> <hororific>さま</hororific> </nanashi-san> <nanashi-san id="3"> <name>No Name</name> <hororific>英語なんでわかりません!</hororific> </nanashi-san> <nanashi-san id="4"> <name>Anonymous</name> <hororific>英語なんでわかりません!</hororific> </nanashi-san> </nanashi-sans> </nanashi-san>
サンプルコード
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; //追加分 using System.IO; using System.Xml.Linq; namespace Experiment_XDocument { class Program { static void Main(string[] args) { FileStream ReadFile = File.OpenRead("sample5.xml"); XDocument Readed = XDocument.Load(ReadFile); var linqSample = Readed.Descendants("name"); foreach(XElement ele in linqSample) { Console.WriteLine(ele.Value); } } } }
出力結果
名無しさん
名無しくん
名無しさま
No Name
Anonymous
あまりにも手探りすぎてざっくりした内容になってしまいました。。解説すらやりづらい……
そもそも要素の名前が被りすぎて適正な検索すらかけれないっていう状態になったのでより良いXMLを掘ってきます。