所以我有以下代碼:的XElement/LinQ將代碼故障
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(字符串文件路徑)中:第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>
我們可以看到XML嗎?我懷疑至少有一個正在迭代的元素缺少期望的屬性。 –
這是一個1 gig文件...會有片段幫助嗎? – gfppaste
'tuv'變量來自哪裏?複製並粘貼錯誤? –