NSString查找和替换html标签attgibutes

时间:2013-11-22 11:09:25

标签: ios objective-c regex nsstring

我非常简单NSString

f.e

<scirpt attribute_1="x" attribute2="x" attribute3="x" ... attributeX="x"/>

我需要找到具体的参数,比方说attribute2并替换它的值, 我知道参数f.e attribute2的确切名称,但我对它的价值一无所知。

我想这可以通过regexp很容易地完成,但我还是很新手。

总结:我想抓住

attribute2="xxxx...xxx" 

来自传入的字符串

注意:我不想使用某些第三方库来实现这一点(这是暂时的黑客攻击)

感谢任何帮助

2 个答案:

答案 0 :(得分:0)

你可以尝试这个.. https://github.com/mwaterfall/MWFeedParser

导入“NSString + HTML.h”以及依赖项 并写这样......

simpletxt.text = [YourHTMLString stringByConvertingHTMLToPlainText];

答案 1 :(得分:0)

我将它与一些字符串操作一起攻击:

NSDictionary* valuesToReplace = @{@"attribute_1" : @"newValue1"};
NSString* sourceHtml = @"<scirpt attribute_1=\"x\" attribute2=\"x\" attribute3=\"x\" attributeX=\"x\" />";
NSArray* attributes = [sourceHtml componentsSeparatedByString:@" "];

for (NSString* pair in attributes)
{
    NSArray* attributeValue = [pair componentsSeparatedByString:@"="];
    if([attributeValue count] > 1) //to skip first "script" element
    {
        NSString* attr = [attributeValue firstObject]; //get attribute name

        if([valuesToReplace objectForKey:attr]) //check if should be replaced
        {
            NSString* newPair = [NSString stringWithFormat:@"%@=\"%@\"", attr, [valuesToReplace objectForKey:attr]]; //create new string for that attribute
            sourceHtml = [sourceHtml stringByReplacingOccurrencesOfString:pair withString:newPair]; //replace it in sourceHtml
        }
    }
}

只有当你想要破解它并且你知道格式时才会发生这种情况:)如果你有任何问题,请拍一个问题。