这是我从Infragistics ultrawebtree
的WriteXmlString()
输出的xml。我正在使用它来创建另一个具有相同结构的Infragistics ultrawebtree
。但在这里我不想要<Url>something.aspx..</Url>
。我希望它像这个<Url><Url>
。所以我如何才能删除。这是我作为字符串得到的。所以我用了Regex.Replace()
。但它在某些情况下会起作用,但在一些情况下,它会通过删除一些xml标记来破坏xml,而xml由于缺少标记而变得无效。我使用这个表达式<Url>S*</Url>
来避免Url的内容。任何帮助都会很有帮助。提前谢谢。
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
- <InfragisticsServerTree XmlVersion="1.0">
- <uwtModule>
- <ProjectProperties>
<ComponentTarget>ClassicTree</ComponentTarget>
<BrowserTarget>Auto</BrowserTarget>
</ProjectProperties>
- <TreeProperties>
<MaxDataBindDepth>-1</MaxDataBindDepth>
<Name>uwtModule</Name>
<Indentation>20</Indentation>
<SubMenuImage>igNone</SubMenuImage>
<LoadOnDemandPrompt>
<b>Loading...</b>
</LoadOnDemandPrompt>
<ExpandAnimation>Decelerate</ExpandAnimation>
<ExpandOnClick>false</ExpandOnClick>
<CompactRendering>false</CompactRendering>
<RenderAnchors>false</RenderAnchors>
- <Style>
<ForeColor>-16777216</ForeColor>
<BorderColor>-4144960</BorderColor>
<BorderStyle>None</BorderStyle>
<BorderWidth>1px</BorderWidth>
- <Font>
<Name>Arial</Name>
- <Names>
<Name>Arial</Name>
</Names>
<Size>11px</Size>
</Font>
<Height>425px</Height>
<Width>97%</Width>
- <Padding>
<Top>5px</Top>
<Left>5px</Left>
<Right>5px</Right>
<Bottom>5px</Bottom>
</Padding>
</Style>
- <SelectedNodeStyle>
<BackColor>-2894893</BackColor>
<ForeColor>-16777216</ForeColor>
- <Padding>
<Top>2px</Top>
<Left>2px</Left>
<Right>2px</Right>
<Bottom>2px</Bottom>
</Padding>
</SelectedNodeStyle>
</TreeProperties>
<Styles />
- <Levels>
- <Level>
<Number>0</Number>
</Level>
</Levels>
- <Nodes>
- <Node>
<Text>123</Text>
<Url>ModuleEdit.aspx?ModuleID=965</Url>
<Target>main</Target>
<Tag>965</Tag>
<Title>AccptChangesPerfPM</Title>
<Expanded>true</Expanded>
- <Nodes>
- <Node>
<Text>111</Text>
<Url>123.aspx?e=965 </Url>
<Target>main</Target>
<Tag>TL_-99999</Tag>
</Node>
- <Node>
<Text>werrv</Text>
<Url>1dfee.aspx?qwe=9er65</Url>
<Target>main</Target>
<Tag>12DDfe</Tag>
</Node>
- <Node>
<Text>q2233</Text>
<Target>main</Target>
<Tag>TL_1015</Tag>
<Title>Topic_1</Title>
<ShowExpand>true</ShowExpand>
- <Nodes>
- <Node>
<Text>T1</Text>
<Url>w3345_954y65.aspx?ID=965er</Url>
<Target>main</Target>
- <Style>
<ForeColor>-16777216</ForeColor>
</Style>
<Tag>82355</Tag>
<Title>T1</Title>
</Node>
- <Node>
<Text>T2</Text>
<Url>23_7811.aspx?ID=3u65</Url>
<Target>main</Target>
- <Style>
<ForeColor>-16777216</ForeColor>
</Style>
<Tag>82356</Tag>
<Title>T2</Title>
</Node>
- <Node>
<Text>T3</Text>
<Url>we456_9.aspx?ID=4r56</Url>
<Target>main</Target>
- <Style>
<ForeColor>-16777216</ForeColor>
</Style>
<Tag>82357</Tag>
<Title>T3</Title>
</Node>
</Nodes>
</Node>
</Nodes>
</Node>
</Nodes>
</uwtModule>
</InfragisticsServerTree>
我的建议是忽略正则表达式。
Go For VB的XML类从文件中读取它,然后使用节点列表和节点。
这里有一些链接可以让你开始:
在VB#中创建XML
在VB#中修改XML文本
VB#中XML文件的多个操作示例
[VB.NET]XML-创建和合并文件。编辑、添加和删除节点。
在上面的链接中,你会发现如何打开、编辑、创建和合并的大量文档和示例。
下面是一个如何做到你上面要求的但有一个公平的警告:这是C#,你需要使用上面的链接来转换,因为我不是VB.Net开发人员
string path = "./"; //your own path
string name = "Tempo"; //filename
XmlDocument f = new XmlDocument();
f.Load(path + name + ".xml");
XmlNodeList a = f.GetElementsByTagName("Url");
for (int i = 0; i < a.Count; i++)
{
a[i].InnerText = "" //This had the data inside <Url>...</Url>
}
f.Save(path+name); //Edited to add the save