【发布时间】:2014-09-11 02:35:35
【问题描述】:
我有一个看起来像这样的代码块(来自 XIB 文件)
<tabBar contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ZTF-8n-Y8A">
<rect key="frame" x="2" y="431" width="320" height="49"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<items>
<tabBarItem title="Item" id="vcz-nP-1al"/>
<tabBarItem title="Item" id="9mv-O2-GXB"/>
</items>
</tabBar>
我通过使用以下搜索 id 找到了该块的第一行
foreach(var search in Outlets.Values)
{
var ui = new UIObject();
var fullSearch = string.Format("id=\"{0}\"", search);
using (var reader = File.OpenText(infile))
{
var line = await reader.ReadLineAsync();
if (line.Contains(fullSearch))
Outlets 是字典
我可以抓取正在读取的文件中的整个内容并将其存储在一个字符串中,或者更有可能是一个字符串构建器对象。
我想要做的是搜索块的关键部分——例如,width="320"。我需要将 width="320" 与字符串的其余部分分开,然后删除 320 部分。
我确实考虑过使用 IndexOf("width") 然后数 6 以到达引号内部直到下一个引号,但这可能相当低效 - 特别是如果字符串很长。
有没有办法按照我描述的方式获取字符串的一部分?
【问题讨论】:
-
String.Substring(索引,长度)。 msdn.microsoft.com/en-us/library/aka44szs%28v=vs.110%29.aspx
-
您可以使用
XDocument.Parse将内容读入XDocument。 -
XIB 文件是 XML,因此最好使用 XML 解析器而不是直接字符串操作。 stackoverflow.com/questions/2551307/… 有一些关于如何在 C# 中使用 XDocument 编辑 XML 的示例。 stackoverflow.com/questions/6593243/… 有一些关于如何从 XML 元素中删除属性的示例。
标签: c#