YTTHpplePlus — это расширение Hpple, которое расширяет функциональность работы с узлами HTML/XML документов: добавление, изменение и удаление узлов, а также экспорт документов. Исходный код Hpple можно найти по ссылке: Hpple на GitHub. Спасибо автору за первоначальный вклад.
pod 'YTTHpplePlus'
NewPageTest
. Поддерживаемые функции включают:Обновление или добавление атрибутов:
- (void)testSetAttr {
NSArray *imgs = [self.doc searchWithXPathQuery:@"//img"];
for (TFHppleElement* element in imgs) {
NSString* raw = element.raw;
NSString* tagName = element.tagName;
NSString* content = element.content;
NSDictionary* attributes = element.attributes;
NSString* src = [element objectForKey:@"src"];
}
// Устанавливаем атрибут для первого элемента
if (imgs.count > 0) {
TFHppleElement* element = imags.firstObject;
[self.doc setOrUpdateAttribute:@{@"width": @"13131"} inElement:element];
}
[self.doc exportXmlDoc];
NSLog(@"=");
}
Изменение содержимого узлов, таких как <p>
, <a>
, <div>
и т. д.:
- (void)testSetContent {
NSArray *paragraphes = [self.doc searchWithXPathQuery:@"//p"];
if (paragraphes.count) {
TFHppleElement* element = paragraphes.firstObject;
[self.doc setOrUpdateContent:@"Это обновлённое и заменённое содержимое" inElement:element];
}
[self.doc exportXmlDoc];
}
Удаление узлов, включая дочерние элементы:
- (void)testRemoveNode {
NSArray *paragraphes = [self.doc searchWithXPathQuery:@"//p"];
if (paragraphes.count) {
TFHppleElement* element = paragraphes.firstObject;
[self.doc deleteElement:element];
}
[self.doc exportXmlDoc];
}
Экспорт документа после операций добавления, изменения и удаления:
// Операции добавления, изменения и удаления
NSString* exportedHtmlStr = [self.doc exportXmlDoc];
<script>
. Это вызывает проблемы при загрузке HTML-документа в веб-браузер. В проекте я использовал два метода для решения этой проблемы. Если у кого-то есть лучшие решения, пожалуйста, поделитесь ими.Регулярное выражение для замены тегов <script>
:
NSRegularExpression *regularExpression = [NSRegularExpression regularExpressionWithPattern:@"<script.*</script>" options:0 error:nil];
content = [regularExpression stringByReplacingMatchesInString:content options:0 range:NSMakeRange(0, content.length) withTemplate:@""];
Добавление дополнительного содержимого в теги <script>
, а затем замена при создании окончательного документа:
<script src="../js/news-script.js">var abcd;</script>
htmlString = [htmlString stringByReplacingOccurrencesOfString:@"<![CDATA[var abcd;]]>" withString:@""];
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )