从以下XML中删除节点



这是我从Infragistics ultrawebtreeWriteXmlString()输出的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

相关内容

  • 没有找到相关文章

最新更新