English 中文(简体)
How to remove closing tag of an XmlDocument in C#, .NET 1.1?
原标题:

How can I remove the closing tag of element c in a XML document?

The converted XML will go through a schema validation and it is rejected because it has a whitespace within. I m using C#, .NET 1.1 (I m updating a legacy application :-( ).

Note: I must not resort to string manipulation to convert the XML document.

Current:

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

Final:

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

Update 1: for additional details, the final XML document is saved as file, and then another process validates the file. It appears that the saved XML is formatted.

I m not sure if this is true:

<a></a> == <a />
最佳回答

Maybe setting InnerText to null instead of string.Empty would help?

Update. Or just set XmlElement.IsEmpty )

问题回答

Try this:

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();




相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签