だから私は次のコードを持っています:
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());
}
}
そして、私が得ているエラーは次のとおりです。置換の失敗:System.NullReferenceException:オブジェクト参照がオブジェクトの参照に設定されていません。Application.Program.Replace(string filepath)の21行目(最初のConsole.WriteLine)
このプログラムの目的は、特定の条件を満たすXMLファイル内の属性名を編集することです...したがって、たとえば、次のようになります。
<element attr="brAA"></element>
これは次のように編集されます。
<element attr="br"></element>
私の知る限り、要素のコレクションxD.Elements()の内容を表す変数xEを作成しています...私はこれに1時間頭を悩ませてきました!なぜ私がこのエラーを受け取るのかについて誰かが何か洞察を持っていますか?
どうもありがとうございます!
これが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>