我有项目文件夹中的XML。我正在使用此
加载内容 XmlDocument doc = new XmlDocument();
string testFilesLocation = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
string dataSource;
string xmlFileName = "Claim.txt";
if (System.IO.Directory.Exists(testFilesLocation + @"\Resources"))
{
dataSource = testFilesLocation + @"\Resources\" + xmlFileName;
}
else
{
dataSource = testFilesLocation + @"\" + xmlFileName;
}
doc.Load(dataSource);
XML具有以下节点
<ClaimKeyInfo>
<CompanyID>XXXX</CompanyID>
<ClaimNum>XX-XXXXX-XX<ClaimNum>
</ClaimKeyInfo>
<ClaimInfo>
<ClaimNum>XX-XXXXX-XX</ClaimNum>
<ClaimSensitivityInd>N</ClaimSensitivityInd>
<ClaimStatus>Open</ClaimStatus>
<ClaimInfo>
我这样做是为了获得ClaimNum元素
XmlElement root = doc.DocumentElement;
XmlNodeList elemList = root.GetElementsByTagName("ClaimNum");
for (int i = 0; i< elemList.Count; i++)
{
elemList[i].InnerXml = "YY-YYYYY-YY";
doc.Save(dataSource);
}
我确实得到了elemList中的两个元素,但我无法更改其中的值。
任何帮助都将不胜感激。
答案 0 :(得分:1)
您可以使用LINQ to XML
。
var xDoc = XDocument.Load("filePath");
var numbers = xDoc.Descendants("ClaimNum");
foreach(var number in numbers)
{
// do your work with numbers
number.Value = "123456";
}
xDoc.Save("filePath");
此处,numbers
包含XElements
,即ClaimNums
。您可以更改Value
属性并保存XML
文件。如果您需要要获取具体数字,您可以使用Where
扩展方法。如果您想了解更多详细信息,请参阅以下文档: