2010-01-21 71 views
0

如何在XML文檔中刪除元素c的結束標記?如何刪除C#,.NET 1.1中的XmlDocument的結束標記?

轉換後的XML將經過模式驗證,並且因爲它內部有空格而被拒絕。我使用C#,.NET 1.1(我更新的傳統應用程序:-()

注意:我不能訴諸字符串操作XML文檔轉換

電流:

<main> 
    <a> 
    <b /> 
    <c> 
    </c> 
    </a> 
</main> 

決賽:

<main> 
    <a> 
    <b /> 
    <c /> 
    </a> 
</main> 

更新1:瞭解更多詳細信息,最終的XML文檔保存爲文件,然後另一個進程驗證文件。看來保存的XML是格式化的。

我不知道這是不是真的:

<a></a> == <a /> 

回答

2

可能設置的innerText爲null代替的String.Empty將有助於?

更新。或者只設置XmlElement.IsEmpty)

+0

您好,感謝回答,但它並沒有解決問題。似乎最終的xml文檔被格式化,因此添加了空白區域。 我將在我遇到的問題上添加更多詳細信息。 – OnesimusUnbound 2010-01-21 09:07:05

+0

你見過更新嗎? – 2010-01-21 09:07:51

+0

謝謝,它工作。其實我使用的是XmlNode,而不是XmlElement,因此解決方案並不明顯。我已經將c節點設置爲XmlElement,而不僅僅是XmlNode。 – OnesimusUnbound 2010-01-21 09:21:57

5

試試這個:

XmlDocument xml = new XmlDocument(); 
xml.LoadXml(@" 
<main> 
    <a> 
    <b /> 
    <c> 
    </c> 
    </a> 
</main>"); 

foreach(XmlElement element in xml.SelectNodes("//*[. = '' and count(*) = 0]")) 
{ 
    element.IsEmpty = true; 
} 

Console.WriteLine(xml.InnerXml); 
Console.ReadLine();