所以我有以下代码:
public static void Replace(filepath)
{
try
{
XElement xD = XElement.Load(filePath);
foreach (XElement xE in xD.Elements())
{
Console.WriteLine(xE.Attribute("attr").Value);
if (tuv.Attribute("attr") != null)
{
Console.WriteLine(xE.Attribute("attr").Value);
if (Regex.IsMatch(xE.Attribute("attr").EndsWith("AA"))
{
Console.WriteLine("match");
tuv.Attribute("attr").Value.Replace("AA", "");
}
Console.WriteLine(xE.Attribute("attr").Value);
}
}
}
catch (Exception e)
{
Console.WriteLine("Failure in Replace: {0}", e.ToString());
}
}
我得到的错误是:Replace失败:System.NullReferenceException:对象引用未设置为对象的引用。在 Application.Program.Replace(string filepath) 中:第 21 行(第一个 Console.WriteLine)
该程序的目的是编辑 XML 文件中满足特定条件的任何属性名称......因此,例如,假设我们有:
<element attr="brAA"></element>
这将被编辑为:
<element attr="br"></element>
据我所知,我正在创建一个变量 xE,它代表元素集合 xD.Elements() 的内容……我已经为此头疼了一个小时!有没有人知道我为什么会收到这个错误?
非常感谢!
这是 XML 的片段
<body>
<par>
<prop type="Doc">1</prop>
<elem attr="aaaa">
<child>REDACTED</child>
</elem>
<elem attr="aaAA">
<child>REDACTED</child>
</elem>
<elem lang="abaa">
<child>REDACTED</child>
</elem>
<elem attr="abAA">
<child>REDACTED</child>
</elem>
<elem attr="acaa">
<child>REDACTED</child>
</elem>
</par>
</body>