我有一个XML模板文件。此文件包含标题和一些预定义的元素部分。
例如:
<?xml version="1.0" encoding="utf-8"?>
<Sections>
<Section PageSize="Letter" PageMargins="35" PagePaddings="5">
<Header Height="130" Repeat="False" >
<Image Source="Resources/logo1.bmp" Left="30" Top="34" Width="65" KeepRatio="True" />
<Text Left="75" Top="34" Width="510" Alignment="Center" Style="TitleTextStyleBold">$Title$</Text>
<Image Source="Resources/logo2.bmp" Left="500" Top="34" Width="65" KeepRatio="True" />
</Header>
</Section>
</Sections>
我想以XML格式动态创建一些元素组(作为字符串)。
例如:
<Group Layout="Horizontal" Margins="0, 13">
<Text Margins="0, 0, 0, 0" Width="180" Alignment="Center" Style="TextStyleBold">DataItem Name</Text>
<Text Margins="0, 0, 0, 0" Width="180" Alignment="Center" Style="TextStyleBold">DataItem Value</Text>
<Text Margins="0, 0, 0, 0" Width="180" Alignment="Center" Style="TextStyleBold">DataItem Unit</Text>
</Group>
我希望使用C#将上述组动态附加到现有模板XML文件。最终附加的XML应如下所示:
例如:
<?xml version="1.0" encoding="utf-8"?>
<Sections>
<Section PageSize="Letter" PageMargins="35" PagePaddings="5">
<Header Height="130" Repeat="False" >
<Image Source="Resources/logo1.bmp" Left="30" Top="34" Width="65" KeepRatio="True" />
<Text Left="75" Top="34" Width="510" Alignment="Center" Style="TitleTextStyleBold">$Title$</Text>
<Image Source="Resources/logo2.bmp" Left="500" Top="34" Width="65" KeepRatio="True" />
</Header>
<Group Layout="Horizontal" Margins="0, 13">
<Text Margins="0, 0, 0, 0" Width="180" Alignment="Center" Style="TextStyleBold">DataItem Name</Text>
<Text Margins="0, 0, 0, 0" Width="180" Alignment="Center" Style="TextStyleBold">DataItem Value</Text>
<Text Margins="0, 0, 0, 0" Width="180" Alignment="Center" Style="TextStyleBold">DataItem Unit</Text>
</Group>
</Section>
</Sections>
如何将字符串(XML格式)内容附加到C#中的XML模板内容?
答案 0 :(得分:2)
您可以使用XDocument实例来表示现有的XML和XElement,以表示您要添加的内容。
它们位于System.Xml.Linq命名空间中,是.NET 3.5 +
的一部分这是一个例子。出于本示例的目的,我在一个名为xml的字符串中包含了主XML,这是一个名为xmlToAdd的字符串中XML的新部分。
XDocument document = XDocument.Parse(xml);
XElement element = XElement.Parse(xmlToAdd);
document.Root.Element("Section").Add(element);