-1

XML が次のような場合に、ノードから XML 属性の特定の値を読み取る方法:

<Settings>
  <Display_Settings>
    <Screen>
      <Name Name="gadg" />
      <ScreenTag Tag="asfa" />
      <LocalPosition X="12" Y="12" Z="12" />
    </Screen>
  </Display_Settings>
</Settings>

属性値ではなく、XML の内部テキスト値を読み取る方法しか知りません。たとえば、LocalPosition の X の値が必要です。これは私がこれまでに試したことです。

    XmlNodeList nodeList = xmlDoc.GetElementsByTagName("Screen");

    foreach (XmlNode nodeInfo in nodeList)
    {
        XmlNodeList nodeContent = nodeInfo.ChildNodes;

        foreach (XmlNode nodeItems in nodeContent)
        {
            if (nodeItems.Name == "Tag")
            {
                print("There is a name");
            }
            if (nodeItems.Name == "LocalPosition")
            {
                print("TEST");
            }
        }
    }

私がやりたいことについては、これは間違った方法だと思います。誰かが正しい方向に向けることができますか?

4

4 に答える 4

4

LINQ to XMLを使用できます。

var xdoc = XDocument.Load(path_to_xml);
int x = (int)xdoc.Descendants("LocalPosition").First().Attribute("X");

またはXPathを使用

int x = (int)xdoc.XPathSelectElement("//LocalPosition").Attribute("X");
于 2013-06-03T08:26:35.417 に答える
0

試してみてくださいnodeItems.Attributes["X"].Value

于 2013-06-03T08:23:33.267 に答える