C# 从XML文件获取属性

C# 从XML文件获取属性,c#,xml,C#,Xml,我有一个具有以下结构的XML文件: <?xml version="1.0" encoding="utf-8"?> <DocumentInterface transactionNo="0102014146" creationDate="2014-05-26" version="1.4" ilnSender="4306286000007" ilnRecipient="407731000008" creationTime="17:00:30" xsi:schemaLocation="

我有一个具有以下结构的XML文件:

<?xml version="1.0" encoding="utf-8"?>
<DocumentInterface transactionNo="0102014146" creationDate="2014-05-26" version="1.4" ilnSender="4306286000007" ilnRecipient="407731000008" creationTime="17:00:30" xsi:schemaLocation="http://xmlschema.metro-mgp.com/outdoc/DocumentInterface DocumentInterface.xsd" xmlns="http://xmlschema.metro-mgp.com/outdoc/DocumentInterface" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<CheckSum>
    <DocCount>1</DocCount>
    <PayableAmount>682.38</PayableAmount>
</CheckSum>
 ......
    </DocumentInterface>
但formTransactionNo始终为空。您能帮我获取此值吗?
谢谢

您不能使用XPath选择属性。实际上,这里不需要XPath—它很容易从根元素获取属性:

XmlAttribute transactionNo = doc.DocumentElement.Attributes["transactionNo"];
string prmNewValue = transactionNo.Value;
// output: 0102014146
更新属性值也很简单:

transactionNo.Value = "007";
doc.Save(path_to_xml);
var xdoc = XDocument.Load(newFileName);    
var prmNewValue = (string)xdoc.Root.Attribute("transactionNo");
或获得应付金额

var ns = xdoc.Root.GetDefaultNamespace();
var payableAmount = 
    (decimal)xdoc.Root.Element(ns + "CheckSum").Element(ns + "PayableAmount");
var ns = xdoc.Root.GetDefaultNamespace();
var payableAmount = 
    (decimal)xdoc.Root.Element(ns + "CheckSum").Element(ns + "PayableAmount");