5

整形式の XML を含むテキスト文字列がいくつかあります。

IXMLNodes(1) これらの文字列を変換してから (2) 既存の に追加できるようにしたいと考えていますXMLDocumentXMLDocumentできれば、新しい最初 を宣言しないでください。

これは不可能に思えますか?

ただし、同等のことを達成する簡単な方法はありますか? 私の最初の考えは、IXMLNode.XML(string) プロパティを使用して新しい文字列を挿入することでした。IXMLNode.XML読み取り専用のような運はありません。

に次の文字列がある場合の例を次に示しますTStringList

<Property Name="Version" RttiType="tkString"></Property>
<Property Name="ShowSubunit" RttiType="tkBoolean"></Property>

そして、次の XML がすでに にロードされていましたがTXMLDocument、上記の 2 行を下に簡単に追加するにはどうすればよいTXMLDocumentでしょうか?

<Program Name="PFOO">
  <Class Name="CFOO">
    <Property Name="DBN" RttiType="tkString"/>
    <Property Name="SDate" RttiType="tkClass" ClassType="TXSDATE">12/30/1899</Property>
    <Property Name="XForm" RttiType="tkEnumeration">xfXML</Property>
    <Property Name="Singleton" RttiType="tkBoolean">True</Property>
  </Class>
</Program>

これを達成する他の(簡単な)方法はありますか(XMLプロパティの保護されたハックはありません)?

ありがとうございました!

4

2 に答える 2

2

XML フラグメントを手動で解析してから、関連する子ノード/属性を手動で構築しない限り、フラグメントを一時 XMLDocument にロードし、必要に応じてそのノードをメイン XMLDocument に移動する必要があります。

更新:例:

Node := XmlDocument1.DocumentElement.ChildNodes[0]; // <Class> node
Node.ChildNodes.Add(LoadXMLData('<Property Name="Version" RttiType="tkString"></Property>').DocumentElement);
Node.ChildNodes.Add(LoadXMLData('<Property Name="ShowSubunit" RttiType="tkBoolean"></Property>').DocumentElement);
于 2013-05-25T05:45:42.237 に答える