1

WriteXmlString()这是我从of的输出中得到的 xml Infragistics ultrawebtree。我正在使用它来创建另一个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>
4

1 回答 1

4

我的建议是忽略正则表达式。

去 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
于 2012-04-05T15:20:29.843 回答