2010-03-26 3 views
0

J'ai un fichier de modèle XML. Ce fichier contient un en-tête et des sections d'éléments prédéfinis.Ajouter un fichier XML

par exemple:

<?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> 

Je veux créer dynamiquement des groupes d'éléments au format XML (sous forme de chaîne).

par exemple:

<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> 

Je veux ajouter dynamiquement les groupes ci-dessus dans le fichier XML de modèle existant, en utilisant C#. Le XML devrait ressembler en annexe finale comme ceci:

par exemple:

<?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> 

Comment puis-je append contenu de la chaîne (format XML) au contenu du modèle XML en C#?

+1

Vous devez indiquer la langue que vous souhaitez utiliser. Si vous utilisez JavaScript, il a intégré un code XML, vous pouvez donc ajouter des éléments, obtenir des listes d'éléments enfants, etc. Je suis sûr que plus ou moins chaque langue a une sorte de bibliothèque équivalente ces jours-ci. – thecoshman

Répondre

2

Vous pouvez utiliser une instance de XDocument pour représenter votre XML et votre XElement existants afin de représenter le contenu que vous souhaitez ajouter.

Ce sont dans l'espace de noms System.Xml.Linq, une partie de

3.5+ .NET Voici un exemple. Pour les besoins de cet exemple, j'ai le XML principal dans une chaîne appelée xml, la nouvelle section de XML dans une chaîne appelée xmlToAdd.

XDocument document = XDocument.Parse(xml); 
    XElement element = XElement.Parse(xmlToAdd); 

    document.Root.Element("Section").Add(element);