XML の Linq は、保存されたデータをどのように走査しますか?

PHPz
リリース: 2017-04-23 16:40:57
オリジナル
2039 人が閲覧しました

Xml ファイルを使用する必要があることがよくありますが、Xml ファイルとは何ですか?

例を使用して説明しましょう: testResult.xml ファイル

<?xml version="1.0" encoding="utf-8" ?>
<Columns>
  <column id="序号">
    <name>序号</name>
  </column>
  <column id="检验项目">
    <name>检验项目</name>
  </column>
  <column id="单位">
    <name>单位</name>
  </column>
  <column id="标准要求">
    <name>标准要求</name>
  </column>
  <column id="检验结果">
    <name>检验结果</name>
  </column>
  <column id="结论">
    <name>结论</name>
  </column>
</Columns>
ログイン後にコピー

上記は、Xml ファイルがデータの保存に使用されることはわかっていますが、このデータをどのように走査するのでしょうか?

実際、最も簡単な方法は Linq を使用することです:

   private void GetTestResultXml()
    {
        List<string> iTestResultXml=new List<string>();
        //定义并从xml文件中加载节点(根节点)
        XElement rootNode = XElement.Load(@"..\..\Xml\testResult.xml");   
        //查询语句: 获得根节点下name子节点(此时的子节点可以跨层次:孙节点、重孙节点......)
        IEnumerable<XElement> targetNodes = from target in rootNode.Descendants("column")
                                            select target;
        foreach (XElement node in targetNodes)
        {
            iTestResultXml.Add(node.Value);
        }
    }
ログイン後にコピー

この方法で、 タグ内のすべてのデータを取得し、リスト iTestResultXml に保存できます。

testResult.xml ファイルでは、 タグが独自の ID を設定していることがわかります。この ID はデータではなく、その属性の 1 つです。

それでは、それを取得したい場合は、次のようにします。彼のタグのコンテンツの代わりに の属性を取得しますか?

private void GetTestResultXml()
    {
        List<string> iXmlID = new List<string>();
        //定义并从xml文件中加载节点(根节点)
        XElement rootNode = XElement.Load(@"..\..\Xml\testResult.xml");   
        //查询语句: 获得根节点下name子节点(此时的子节点可以跨层次:孙节点、重孙节点......)
        IEnumerable<XElement> targetNodes = from target in rootNode.Descendants("column")
                                            select target;
        foreach (XElement node in targetNodes)
        {
             iXmlID.Add(node.Attribute("id").Value);   //获取指定属性的方法
        }
    }
ログイン後にコピー

このようにして、 タグの id 属性のリスト iXmlID を取得します。

以上がXML の Linq は、保存されたデータをどのように走査しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!