2013-07-03 243 views
-3

嗨我有一个XML的字符串,即时消息正在寻找插入另一个使用C#的特定位置的XML块。将字符串插入字符串C#

<试验> <组> < /组> <组> < /组> < /测试> <洛尔> <组> < /组> < /洛尔>

我想我最后< /组> <测试后里面nsert字符串>,以便它看起来像

<测试> <组> < /组> <组> < /组> <我加入这组> </I加入该组> < /测试> <洛尔> <组> < /组> < /洛尔>

如果有人知道如何做到这一点,请让我知道。

在此先感谢。

编辑:

字符串不是只是一个单一的元件的,但可能数百个元素和子元素和子元素子和许多不同的属性。 elementception 这是一个示例STRING方式类似,ADDME看起来:

<Group Id="Customers" ResourceId="Group_Customers" DescriptionResourceId="Customers_Description"> 
    <SubArea Id="nav_accts" DescriptionResourceId="Account_SubArea_Description" Entity="account" GetStartedPanePath="Accounts_Web_User_Visor.html" GetStartedPanePathAdmin="Accounts_Web_Admin_Visor.html" GetStartedPanePathOutlook="Accounts_Outlook_User_Visor.html" GetStartedPanePathAdminOutlook="Accounts_Outlook_Admin_Visor.html" /> 
    <SubArea Id="nav_conts" DescriptionResourceId="Contact_SubArea_Description" Entity="contact" GetStartedPanePath="Contacts_Web_User_Visor.html" GetStartedPanePathAdmin="Contacts_Web_Admin_Visor.html" GetStartedPanePathOutlook="Contacts_Outlook_User_Visor.html" GetStartedPanePathAdminOutlook="Contacts_Outlook_Admin_Visor.html" /> 
</Group> 
<Group Id="SFA" ResourceId="Area_Sales" DescriptionResourceId="Sales_Description"> 
    <SubArea Id="nav_leads" DescriptionResourceId="Lead_SubArea_Description" Entity="lead" GetStartedPanePath="Leads_Web_User_Visor.html" GetStartedPanePathAdmin="Leads_Web_Admin_Visor.html" GetStartedPanePathOutlook="Leads_Outlook_User_Visor.html" GetStartedPanePathAdminOutlook="Leads_Outlook_Admin_Visor.html" /> 
    <SubArea Id="nav_oppts" DescriptionResourceId="Opportunity_SubArea_Description" Entity="opportunity" GetStartedPanePath="Opportunities_Web_User_Visor.html" GetStartedPanePathAdmin="Opportunities_Web_Admin_Visor.html" GetStartedPanePathOutlook="Opportunities_Outlook_User_Visor.html" GetStartedPanePathAdminOutlook="Opportunities_Outlook_Admin_Visor.html" /> 
    <SubArea Id="nav_comps" DescriptionResourceId="Competitor_SubArea_Description" Entity="competitor" /> 
</Group> 
<Group Id="Collateral" ResourceId="Area_Collateral" DescriptionResourceId="Area_Collateral_Description"> 
    <SubArea Id="nav_quotes" DescriptionResourceId="Quote_SubArea_Description" Entity="quote" GetStartedPanePath="Quotes_Web_User_Visor.html" GetStartedPanePathAdmin="Quotes_Web_Admin_Visor.html" GetStartedPanePathOutlook="Quotes_Outlook_User_Visor.html" GetStartedPanePathAdminOutlook="Quotes_Outlook_Admin_Visor.html" /> 
    <SubArea Id="nav_orders" DescriptionResourceId="Orders_SubArea_Description" Entity="salesorder" GetStartedPanePath="Orders_Web_User_Visor.html" GetStartedPanePathAdmin="Orders_Web_Admin_Visor.html" GetStartedPanePathOutlook="Orders_Outlook_User_Visor.html" GetStartedPanePathAdminOutlook="Orders_Outlook_Admin_Visor.html" /> 
    <SubArea Id="nav_invoices" DescriptionResourceId="Invoice_SubArea_Description" Entity="invoice" GetStartedPanePath="Invoices_Web_User_Visor.html" GetStartedPanePathAdmin="Invoices_Web_Admin_Visor.html" GetStartedPanePathOutlook="Invoices_Outlook_User_Visor.html" GetStartedPanePathAdminOutlook="Invoices_Outlook_Admin_Visor.html" /> 
    <SubArea Id="nav_products" DescriptionResourceId="Product_SubArea_Description" Entity="product" GetStartedPanePath="Products_Web_User_Visor.html" GetStartedPanePathAdmin="Products_Web_Admin_Visor.html" GetStartedPanePathOutlook="Products_Outlook_User_Visor.html" GetStartedPanePathAdminOutlook="Products_Outlook_Admin_Visor.html" /> 
    <SubArea Id="nav_saleslit" DescriptionResourceId="SalesLit_SubArea_Description" Entity="salesliterature" /> 
</Group> 
<Group Id="MA" ResourceId="Area_Marketing" DescriptionResourceId="Marketing_Description"> 
    <SubArea Id="nav_lists" DescriptionResourceId="MarketingList_SubArea_Description" Entity="list" GetStartedPanePath="Marketing-Lists_Web_User_Visor.html" GetStartedPanePathAdmin="Marketing-Lists_Web_Admin_Visor.html" GetStartedPanePathOutlook="Marketing-Lists_Outlook_User_Visor.html" GetStartedPanePathAdminOutlook="Marketing-Lists_Outlook_Admin_Visor.html" /> 
    <SubArea Id="nav_minicamps" DescriptionResourceId="Quick_Campaign_Description" Icon="/_imgs/ico_18_minicamps.gif" Entity="bulkoperation" GetStartedPanePath="Quick-Campaigns_Web_User_Visor.html" GetStartedPanePathAdmin="Quick-Campaigns_Web_Admin_Visor.html" GetStartedPanePathOutlook="Quick-Campaigns_Outlook_User_Visor.html" GetStartedPanePathAdminOutlook="Quick-Campaigns_Outlook_Admin_Visor.html" OutlookShortcutIcon="/_imgs/olk_4400.ico"> 
    <Privilege Privilege="AllowQuickCampaign" /> 
    </SubArea> 
</Group> 
+0

你尝试过什么具体的问题是你有?关于XML解析/修改以及字符串操作,有很多答案。 – jltrem

+1

int index = xml.IndexOf(“”); string go = xml.Insert(index +“”.Length,addme); –

+4

不要使用字符串操作来修改XML。将它加载到一个'XElement'中。 –

回答

2

你可以做这样的事情,首先加载字符串作为XML

string xmlContent = "Your xml string content"; 
    //parse the string as xml 
    XDocument xmlDoc = XDocument.Parse(xmlContent); 
    //get the element which matches your need. 
    XElement areaElement = 
     (from el in xmlDoc.Descendants("area") where el.Attribute("id").Value=="workplace" 
     select el).FirstOrDefault(); 
    //create a new group element 
    XElement newGroup = new XElement("i added this group"); 
    //add a value for this element or add attributes what ever is needed to this group here 
    //add the new group this will by default add it at the end of all other child elements. 
    areaElement.Add(newGroup); 
+1

+1用于将XML字符串视为** XML **而不是字符串。格式和API存在的原因。 :) –

+0

对不起,我应该更清楚。字符串看起来更像这样:它不是1个元素,它的许多元素和许多子元素。 但类似的方式更长哈哈 –

+0

您的组元素可以有任意数量的属性或子元素,但如果您只需要创建另一个元素在区域元素的末尾(即添加一个新的组作为区域元素内的其他组元素的同胞)。如果你不能得到它,那么请张贴确切的xml和你想添加的元素,这样我们可以发布完整的例子,但至少我期望,你应该尝试:(因为大部分骨架已经 – srsyogesh