2

さて、ばかげた質問ですが、xml から始めたばかりです。

<fifth points = '500' answer = 'Ada Lovelace'>
    This woman, known as the world's first computer programmer
    was also a Countess.
</fifth>

Ada Lovelace の後でデータを取得するにはどうすればよいですか? 5 番目がノードで、ポイントとアンサーが属性であることがわかりました。目的のデータを取得するには、何を取得する必要がありますか?

4

3 に答える 3

1

これは、ノードに到達する方法を理解するのに役立つ、試してテストできるものです。InnerText

var testDoc =
    @"<fifth points = '500' answer = 'Ada Lovelace'>"
       +  "This woman, known as the world's first computer programmer "
       +  "was also a Countess."
       + "</fifth>";
XmlDocument docXML = new XmlDocument();
docXML.LoadXml(testDoc);
var innerxml = docXML.InnerText;
MessageBox.Show(innerxml);
于 2013-01-08T05:25:10.173 に答える
1

あなたはおそらく次のようなものを探しています:

node.InnerText

C# でノード XML を解析する方法については、http://www.csharp-examples.net/xml-nodes-by-name/ を参照してください。この投稿http://www.codeproject.com/Articles/7718/Using-XML-in-C-in-the-simplest-wayも、XML を解析する最も簡単な方法をいくつか提供しているため、役立つ場合があります。 C#で。

ノード名 xmlNode["FirstName"].InnerText で XmlNode を単純にインデックス化できます。以下の例を参照してください。

XmlDocument xml = new XmlDocument();
// suppose that myXmlString contains "<Names>...</Names>":
xml.LoadXml(myXmlString); 

XmlNodeList xnList = xml.SelectNodes("/Names/Name");
foreach (XmlNode xn in xnList)
{
  string firstName = xn["FirstName"].InnerText;
  string lastName = xn["LastName"].InnerText;
  Console.WriteLine("Name: {0} {1}", firstName, lastName);
}

出力は次のとおりです。

名前: ジョン・スミス 名前: ジェームス・ホワイト

編集: DJ KRAZEとJeremy Thompsonも私の答えに影響を与えたことに注意することが重要です.

于 2013-01-08T05:22:42.303 に答える
0

Linq を Xml に使用できます。これが完全な xml である場合は、解析する必要があります。

var xml = "<fifth points='500' answer='Ada Lovelace'>This woman, known as the world's first computer programmer was also a Countess.</fifth>";
XElement element = XElement.Parse(xml);
string text = (string)element; // takes element's innerText

answer 属性値によって xml ファイルからこの要素を選択する必要がある場合:

XDocument xdoc = XDocument.Load(path_to_xml_file);
string text = xdoc.Descendants("fifth")
                  .Where(e => (string)e.Attribute("answer") == "Ada Lovelace")
                  .Select(e => (string)e)
                  .FirstOrDefault(); // returns first matched element or null
于 2013-01-08T07:18:16.040 に答える