2

我正在尝试获取存储在我的数据库中但似乎无法使其工作的 xml 片段的值。他们都回来了... xml看起来像这样:

<fields>
<field id="EmployeeID">1002240002</field>
<field id="JobType">Web Manager</field>
<field id="CompanyCode">R6297C</field>
</fields>

我的代码,来自数据库的字符串如下。

string xml = "<fields><field id=\"EmployeeID\">1002240002</field><field id=\"JobType\">Web Manager</field><field id=\"CompanyCode\"> R6297C </field></fields>";

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xml);

var n = xmlDoc.GetElementById("EmployeeID ");

                if (n != null)
                { 
                    var employeeId = xmlDoc.GetElementById("EmployeeID ").InnerText;
                }

对此有什么帮助吗?我知道我在这里遗漏了一些简单的东西......谢谢!

4

1 回答 1

2

您可以使用以下 XPath 查询

string xpath = "field[@id='EmployeeID']";
XmlNode fieldNode = xmlDoc.DocumentElement.SelectSingleNode(xpath);
var id = Int32.Parse(fieldNode.InnerText);

或 Linq 到 Xml

var id = (from f in xdoc.Descendants()
          where (string)f.Attribute("id") == "EmployeeID"
          select (int)f).Single();

或者使用流畅的界面

var id = xdoc.Descendants()
             .Where(f => (string)f.Attribute("id") == "EmployeeID")
             .Select(f => (int)f)
             .Single();

顺便说一句,xdoc 是XDocument类的一个实例:

var xdoc = new XDocument(xml);
于 2012-10-30T13:00:09.537 回答