C#:在字符串数组中搜索并获取特定的字符串值

电子学习者

我想搜索xml文件中的元素值并从中获取特定的字符串。例如,我的xml文件中具有以下元素值:

<Content>Shape="Rectangle" Tooltip="data" StrokeThickness="2" Tag="default" </Content>

现在,我想阅读此内容Content并获取Tooltip值作为我的结果字符串,这应该给我“数据”。我想要类似的东西:

string restuledString = Tooltip.value

怎么做?

更新:

这是完整的xml文件:

<?xml version="1.0" encoding="utf-8"?>
<Topologies>
  <ConfigurationItems>
    <ConfigurationItem Label="Default Tag">
      <Attribute Name="display_lable" Label="Display Label" Type="clas java.lang.String" Value="Default Tag" />
      <Attribute Name="MemorySize" Label="MemorySize" Type="class java.lang.Integer" Value="Default Tag" />
      <Attribute Name="Description" Label="Description" Type="class java.lang.String" Value="SunOS" />
      <Attribute Name="DiscoveredModel" Label="DiscoveredModel" Type="class java.lang.String" Value="Oracle Corporation sun4v SPARC T5-4" />
      <X>289</X>
      <Y>108.53999999999999</Y>
      <Width>130</Width>
      <Height>117</Height>
      <ID>ed56efb4-6bdd-4dc7-8b79-db5e9b8484f1</ID>
      <zIndex>0</zIndex>
      <IsGroup>false</IsGroup>
      <ParentID>00000000-0000-0000-0000-000000000000</ParentID>
      <Content>&lt;Rectangle StrokeThickness="2" Tag="Default Thread Tag" ToolTip="data" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:dd="clr-namespace:DiagramDesigner;assembly=ADAX_GUI"&gt;&lt;Rectangle.Style&gt;&lt;Style TargetType="Rectangle"&gt;&lt;Style.BasedOn&gt;&lt;Style TargetType="Rectangle"&gt;&lt;Style.Resources&gt;&lt;ResourceDictionary /&gt;&lt;/Style.Resources&gt;&lt;Setter Property="UIElement.RenderTransform"&gt;&lt;Setter.Value&gt;&lt;SkewTransform AngleX="-15" AngleY="0" CenterX="50" CenterY="25" /&gt;&lt;/Setter.Value&gt;&lt;/Setter&gt;&lt;Setter Property="Shape.Fill"&gt;&lt;Setter.Value&gt;&lt;LinearGradientBrush StartPoint="0,0" EndPoint="0,1"&gt;&lt;LinearGradientBrush.GradientStops&gt;&lt;GradientStop Color="#FFFAFBE9" Offset="0" /&gt;&lt;GradientStop Color="#FFFFA500" Offset="1" /&gt;&lt;/LinearGradientBrush.GradientStops&gt;&lt;/LinearGradientBrush&gt;&lt;/Setter.Value&gt;&lt;/Setter&gt;&lt;Setter Property="Shape.Stroke"&gt;&lt;Setter.Value&gt;&lt;SolidColorBrush&gt;#FFD69436&lt;/SolidColorBrush&gt;&lt;/Setter.Value&gt;&lt;/Setter&gt;&lt;Setter Property="Shape.StrokeThickness"&gt;&lt;Setter.Value&gt;&lt;s:Double&gt;1&lt;/s:Double&gt;&lt;/Setter.Value&gt;&lt;/Setter&gt;&lt;Setter Property="Shape.StrokeLineJoin"&gt;&lt;Setter.Value&gt;&lt;x:Static Member="PenLineJoin.Round" /&gt;&lt;/Setter.Value&gt;&lt;/Setter&gt;&lt;Setter Property="Shape.Stretch"&gt;&lt;Setter.Value&gt;&lt;x:Static Member="Stretch.Fill" /&gt;&lt;/Setter.Value&gt;&lt;/Setter&gt;&lt;Setter Property="UIElement.IsHitTestVisible"&gt;&lt;Setter.Value&gt;&lt;s:Boolean&gt;False&lt;/s:Boolean&gt;&lt;/Setter.Value&gt;&lt;/Setter&gt;&lt;Setter Property="UIElement.SnapsToDevicePixels"&gt;&lt;Setter.Value&gt;&lt;s:Boolean&gt;True&lt;/s:Boolean&gt;&lt;/Setter.Value&gt;&lt;/Setter&gt;&lt;/Style&gt;&lt;/Style.BasedOn&gt;&lt;Style.Resources&gt;&lt;ResourceDictionary /&gt;&lt;/Style.Resources&gt;&lt;Setter Property="Shape.StrokeDashArray"&gt;&lt;Setter.Value&gt;&lt;DoubleCollection&gt;1.5 0.7&lt;/DoubleCollection&gt;&lt;/Setter.Value&gt;&lt;/Setter&gt;&lt;/Style&gt;&lt;/Rectangle.Style&gt;&lt;dd:DesignerItem.DragThumbTemplate&gt;&lt;ControlTemplate&gt;&lt;Rectangle Name="ThreadShape" Width="250" Height="150"&gt;&lt;Rectangle.Style&gt;&lt;Style TargetType="Rectangle"&gt;&lt;Style.BasedOn&gt;&lt;Style TargetType="Rectangle"&gt;&lt;Style.BasedOn&gt;&lt;Style TargetType="Rectangle"&gt;&lt;Style.Resources&gt;&lt;ResourceDictionary /&gt;&lt;/Style.Resources&gt;&lt;Setter Property="UIElement.RenderTransform"&gt;&lt;Setter.Value&gt;&lt;SkewTransform AngleX="-15" AngleY="0" CenterX="50" CenterY="25" /&gt;&lt;/Setter.Value&gt;&lt;/Setter&gt;&lt;Setter Property="Shape.Fill"&gt;&lt;Setter.Value&gt;&lt;LinearGradientBrush StartPoint="0,0" EndPoint="0,1"&gt;&lt;LinearGradientBrush.GradientStops&gt;&lt;GradientStop Color="#FFFAFBE9" Offset="0" /&gt;&lt;GradientStop Color="#FFFFA500" Offset="1" /&gt;&lt;/LinearGradientBrush.GradientStops&gt;&lt;/LinearGradientBrush&gt;&lt;/Setter.Value&gt;&lt;/Setter&gt;&lt;Setter Property="Shape.Stroke"&gt;&lt;Setter.Value&gt;&lt;SolidColorBrush&gt;#FFD69436&lt;/SolidColorBrush&gt;&lt;/Setter.Value&gt;&lt;/Setter&gt;&lt;Setter Property="Shape.StrokeThickness"&gt;&lt;Setter.Value&gt;&lt;s:Double&gt;1&lt;/s:Double&gt;&lt;/Setter.Value&gt;&lt;/Setter&gt;&lt;Setter Property="Shape.StrokeLineJoin"&gt;&lt;Setter.Value&gt;&lt;x:Static Member="PenLineJoin.Round" /&gt;&lt;/Setter.Value&gt;&lt;/Setter&gt;&lt;Setter Property="Shape.Stretch"&gt;&lt;Setter.Value&gt;&lt;x:Static Member="Stretch.Fill" /&gt;&lt;/Setter.Value&gt;&lt;/Setter&gt;&lt;Setter Property="UIElement.IsHitTestVisible"&gt;&lt;Setter.Value&gt;&lt;s:Boolean&gt;False&lt;/s:Boolean&gt;&lt;/Setter.Value&gt;&lt;/Setter&gt;&lt;Setter Property="UIElement.SnapsToDevicePixels"&gt;&lt;Setter.Value&gt;&lt;s:Boolean&gt;True&lt;/s:Boolean&gt;&lt;/Setter.Value&gt;&lt;/Setter&gt;&lt;/Style&gt;&lt;/Style.BasedOn&gt;&lt;Style.Resources&gt;&lt;ResourceDictionary /&gt;&lt;/Style.Resources&gt;&lt;Setter Property="Shape.StrokeDashArray"&gt;&lt;Setter.Value&gt;&lt;DoubleCollection&gt;1.5 0.7&lt;/DoubleCollection&gt;&lt;/Setter.Value&gt;&lt;/Setter&gt;&lt;/Style&gt;&lt;/Style.BasedOn&gt;&lt;Style.Resources&gt;&lt;ResourceDictionary /&gt;&lt;/Style.Resources&gt;&lt;Setter Property="UIElement.IsHitTestVisible"&gt;&lt;Setter.Value&gt;&lt;s:Boolean&gt;True&lt;/s:Boolean&gt;&lt;/Setter.Value&gt;&lt;/Setter&gt;&lt;Setter Property="Shape.Fill"&gt;&lt;Setter.Value&gt;&lt;SolidColorBrush&gt;#00FFFFFF&lt;/SolidColorBrush&gt;&lt;/Setter.Value&gt;&lt;/Setter&gt;&lt;Setter Property="Shape.Stroke"&gt;&lt;Setter.Value&gt;&lt;SolidColorBrush&gt;#00FFFFFF&lt;/SolidColorBrush&gt;&lt;/Setter.Value&gt;&lt;/Setter&gt;&lt;/Style&gt;&lt;/Rectangle.Style&gt;&lt;/Rectangle&gt;&lt;/ControlTemplate&gt;&lt;/dd:DesignerItem.DragThumbTemplate&gt;&lt;/Rectangle&gt;</Content>
    </ConfigurationItem>
  </ConfigurationItems>
  <Connections />
</Topologies>
塔雷克

如果您只想解析xml节点中的文本(由于您没有提供任何有关xml结构的信息,则必须自己处理),您可以使用一种讨厌的方式:

string yourNodeValue = @"Shape=""Rectangle"" Tooltip=""data"" StrokeThickness=""2"" Tag=""default""";
string output;
var keysAndValues = yourNodeValue.Split(' ').Select (nv => nv.Trim())
foreach(var keyValue in keysAndValues)
{
    var pair = keyValue.Split('=');
    if(pair[0] == "Tooltip")
    {
        output = pair[1].Trim('"');
        break;
    }
}

但是,我假设将始终key="value"保留格式,并且之间不留空格。或者您可以只使用正则表达式分组模式Shape=\"(\w+)\"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在字符串C#中搜索特定模式

来自分类Dev

从JSON字符串中获取C#对象数组

来自分类Dev

在C#中获取字符串之间的值

来自分类Dev

在C#中获取枚举类型的字符串值

来自分类Dev

在字符串数组中搜索以获得以特定字符开头的特定值的列表?

来自分类Dev

在字符串中搜索特定字符

来自分类Dev

搜索字符串中的特定字符

来自分类Dev

在字符串数组中搜索字符串的函数

来自分类Dev

从字符串数组中搜索字符串

来自分类Dev

在字符串数组中搜索字符串

来自分类Dev

在数组中,获取以特定字符开头的字符串

来自分类Dev

如何从C#中的xml字符串获取特定值

来自分类Dev

C# 从 XML 字符串文档中获取特定值 - 子节点

来自分类Dev

过滤字符串数组,仅获取与搜索到的字符串匹配的字符串

来自分类Dev

如何在Couchbase数组中搜索特定字符串

来自分类Dev

获取数组中的字符串字符

来自分类Dev

PHP从字符串中获取搜索词的数组

来自分类Dev

在字符串数组中查找特定的字符串

来自分类Dev

在字符串数组中查找特定的字符串

来自分类Dev

获取以特定字符串开头的数组的值

来自分类Dev

在文件中搜索特定字符串并替换值

来自分类Dev

c 在字符串中搜索目标字符串

来自分类Dev

从字符串中获取特定的子字符串

来自分类Dev

获取特定字符串中的字符串

来自分类Dev

在PHP数组中搜索字符串

来自分类Dev

从数组中搜索字符串的文件

来自分类Dev

在C中的字符串的char数组中搜索字符串

来自分类Dev

在元素中搜索特定字符串

来自分类Dev

如何从字符串中获取特定值或指定值?