一次将所有 IXmlNode ChildNode 转换为字符串

Convert all IXmlNode ChildNodes into a string at once

我正在解析 XML,其中 IXMLNode 组件通过 ChildNodes,代码如 lChildNode := lCalendarNode.ChildNodes.FindNode(cNodeItemId),使用 NextSibling 等等。

我的 XML 中有一部分我想完整地存储在一个字符串中,例如对于

<RequiredAttendees>
  <Attendee>
    <Mailbox>
      <EmailAddress>user1@localhost.com</EmailAddress>
    </Mailbox>
  </Attendee>
  <Attendee>
    <Mailbox>
      <EmailAddress>user2@localhost.com</EmailAddress>
    </Mailbox>
  </Attendee>
</RequiredAttendees>

我想要 this 在字符串中(有或没有行 separators/spaces,我不在乎):

<Attendee><Mailbox><EmailAddress>user1@localhost.com</EmailAddress></Mailbox></Attendee><Attendee><Mailbox><EmailAddress>user2@localhost.com</EmailAddress></Mailbox></Attendee>

有没有一种方法可以做到这一点而不必解析所有底层节点?
它们的结构和深度可能会有所不同,即在这个例子中 <MailBox> 可以有不同的形式。

请注意,根本不涉及名称空间(现阶段也不涉及属性,但由于我的 XML 来自外部来源,我不能打赌它会一直如此)。

我(OP)完全忽略了 IXMLNode XML 属性(感谢 LLama

一旦我的 var lNode:IXMLNode 指向节点,lNode.XML returns 从 <RequiredAttendees><\RequiredAttendees> 的字符串。从那里我可以轻松地剥离外部 XML 元素。