假设我有以下XML文档.
<reply success="true">More nodes go here</reply>
Run Code Online (Sandbox Code Playgroud)
如何获取属性成功的值,在这种情况下将是字符串"true".
Edw*_*ing 26
我会尝试这样的事情:
XmlDocument doc = new XmlDocument();
doc.LoadXml("<reply success=\"true\">More nodes go here</reply>");
XmlElement root = doc.DocumentElement;
string s = root.Attributes["success"].Value;
Run Code Online (Sandbox Code Playgroud)
如果将XML加载到a中XmlDocument
,则可以通过多种方式获取属性的值.您可以使用XPath来查找属性:
XmlAttribute a = doc.SelectSingleNode("/reply/@success");
Console.Write(a.Value);
Run Code Online (Sandbox Code Playgroud)
如果您已经拥有XmlElement
属性(在这种情况下是文档元素),那么您可以使用GetAttribute
:
Console.Write(doc.DocumentElement.GetAttribute("success"));
Run Code Online (Sandbox Code Playgroud)
如果你正在使用XPathDocument
or XmlReader
或者有类似的方法XDocument
.
但是,在所有情况下,您希望按名称获取属性,而不是其位置.在您的测试用例中,只有一个属性; 在任何现实世界的应用程序中,可能存在多个属性,并且XML中的属性排序并不重要.这两个元素在语义上是等价的:
<a foo='true' bar='false'/>
<a bar='false' foo='true'/>
Run Code Online (Sandbox Code Playgroud)
您甚至不知道XML解析器将按照它们在文档中出现的顺序向您显示属性; 根据实现,解析器可能按字母顺序或随机顺序将它们提供给您.(我见过两个.)
归档时间: |
|
查看次数: |
78618 次 |
最近记录: |