Как создать и заменить строки в HTML-файл на iOS

0

Я hava файл шаблона html в моем проекте, и у меня есть массив с элементами от 0 до 10.000. Мне нравится создавать столько копий <img src="link" style="width:30.5mm;height:30.5mm;" class="addBorder"></img> <img src="link" style="width:30.5mm;height:30.5mm;" class="addBorder"></img> и заполнить link на элемент в индексе массива.

Например: массив имеет 5 элементов

Файл html должен выглядеть так после цикла for:

<html>
<style>
.addBorder {
    border: 29.5px solid #ffffff;
}
</style>
<body>
<table>
<tr>

<img src="file:///Users/David/Desktop/1_1STKK.png" style="width:30.5mm;height:30.5mm;" class="addBorder"></img>
<img src="file:///Users/David/Desktop/2_1STKK.png" style="width:30.5mm;height:30.5mm;" class="addBorder"></img>
<img src="file:///Users/David/Desktop/3_1STKK.png" style="width:30.5mm;height:30.5mm;" class="addBorder"></img>
<img src="file:///Users/David/Desktop/4_1STKK.png" style="width:30.5mm;height:30.5mm;" class="addBorder"></img>
<img src="file:///Users/David/Desktop/5_1STKK.png" style="width:30.5mm;height:30.5mm;" class="addBorder"></img>

<tr>
<table>
</body>
</html>

Ant это оригинальный шаблон html файла:

<html>
<style>
.addBorder {
    border: 29.5px solid #ffffff;
}
</style>
<body>
<table>
<tr>

<img src="link" style="width:30.5mm;height:30.5mm;" class="addBorder"></img>

<tr>
<table>
</body>
</html>

Надеюсь, это так возможно.

РЕДАКТИРОВАТЬ

Я исправил это сам, вот что я сделал:

for (int qr = 0; qr <= qrArray.count-1; qr++) {
                NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@.png", [self documentPath], qrArray[qr]]];
                NSString *costumeLink = [NSString stringWithFormat:@"<img src=\"%@\" style=\"width:30.5mm;height:30.5mm;\" class=\"addBorder\"></img>", url];
                [qrPDFArray addObject:costumeLink];
            }

            NSString*htmlString = [NSString stringWithFormat:@"%@", [qrPDFArray description]];
            htmlString = [htmlString stringByReplacingOccurrencesOfString:@",\n    " withString:@"\n"];
            htmlString = [htmlString stringByReplacingOccurrencesOfString:@"\\\"" withString:@"\""];
            htmlString = [htmlString stringByReplacingOccurrencesOfString:@"\"," withString:@""];
            htmlString = [htmlString stringByReplacingOccurrencesOfString:@"\"<" withString:@"<"];
            htmlString = [htmlString stringByReplacingOccurrencesOfString:@">\"" withString:@">"];
            htmlString = [htmlString stringByReplacingOccurrencesOfString:@"(\n    " withString:@""];
            htmlString = [htmlString stringByReplacingOccurrencesOfString:@")" withString:@""];
            NSLog(@"%@", htmlString);
            NSString *tempFile = [[NSBundle mainBundle] pathForResource:@"temp" ofType:@"html"];
            NSString* tempFileString = [NSString stringWithContentsOfFile:tempFile encoding:NSUTF8StringEncoding error:nil];
            tempFileString = [tempFileString stringByReplacingOccurrencesOfString:@"HERE" withString:htmlString];
Теги:
for-loop

1 ответ

1

использовать компоненты NSStringSeparatedByString: метод.

NSString *originalHTML = @"<table><tr><img link >aa</img><tr><table>";
NSArray *linkArray = @[@"aa",@"bb"]; //your links array
NSArray *allStrings = [originalHTML componentsSeparatedByString:@"<tr>"];
NSString *imgString = allStrings[1];
NSString *repeatedString=@"";
NSInteger i;
for(i=0;i<linkArray.count;i++){
    NSString *linkString = [imgString stringByReplacingOccurrencesOfString:@"link" withString:linkArray[i]];
    repeatedString = [repeatedString stringByAppendingString:linkString];
}
NSString *finalHTML = [NSString stringWithFormat:@"%@<tr>%@<tr>%@",allStrings[0],repeatedString,allStrings[2]];

NSLog(@"%@",finalHTML);

надеюсь это поможет.

  • 0
    Привет, я думаю, вы неправильно поняли мой вопрос. У меня есть массив с различными путями к файлам внутри. И у меня есть HTML-файл, где я должен добавить столько строк, сколько элементов в массиве. Затем я должен заменить строковую ссылку в html-файле на элемент e в элементе массива, например. если в массиве 5 элементов, мне нужно 5 раз добавить строку в html-файл и заменить строку «ссылка» на элемент в индексе массива. Извините за плохое объяснение, я не являюсь носителем английского языка.
  • 0
    Я отредактировал ответ

Ещё вопросы

Сообщество Overcoder
Наверх
Меню