Сохранить теги и атрибуты span html в NSAttributedString - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь преобразовать строку html в NSAttributedString и отредактировать ее, а затем преобразовать обратно в html. Но есть определенные атрибуты, которые удаляются, когда мы конвертируем из html в NSAttributedString.

Образец Html:

<p>
    <b>
        <u context=SampleContext1 id=5def9d85389434f861dbfd1e>Sample Heading</u>
    </b>
</p>
<p>Sample SubHeading</p>
<ul>
    <li>
        <b>Sample Title:</b>
        <u context=SampleContext2 id=5def9d85389434f861dbfd1d>Sample Sentence1</u>
        <u context=SampleContext3 id=5def9d853894340078dbfcf5>Sample Sentence2</u>
    </li>
</ul>

Я использую приведенный ниже код для преобразования вышеуказанного html в NSAttributedString.

let attributedHtmlString = try NSMutableAttributedString.init(data: (htmlString.data(using: String.Encoding.unicode))!, options: [.documentType: NSAttributedString.DocumentType.html], documentAttributes: nil)
self.htmlTextView.attributedText = attributedHtmlString

Текущий вывод:

Sample Sentence1{
    NSColor = "kCGColorSpaceModelRGB 0 0 0 1 ";
    NSFont = "<UICTFont: 0x7fa0bced7500> font-family: \"TimesNewRomanPS-BoldMT\"; font-weight: bold; font-style: normal; font-size: 14.00pt";
    NSKern = 0;
    NSParagraphStyle = "Alignment 0, LineSpacing 0, ParagraphSpacing 0, ParagraphSpacingBefore 0, HeadIndent 36, TailIndent 0, FirstLineHeadIndent 0, LineHeight 18/0, LineHeightMultiple 0, LineBreakMode 0, Tabs (\n    11L,\n    36N\n), DefaultTabInterval 36, Blocks (null), Lists (\n    \"NSTextList 0x600001fc27f0 format <{disc}>\"\n), BaseWritingDirection 0, HyphenationFactor 0, TighteningForTruncation NO, HeaderLevel 0 LineBreakStrategy 0";
    NSStrokeColor = "kCGColorSpaceModelRGB 0 0 0 1 ";
    NSStrokeWidth = 0;
    NSUnderline = 1;
}

Есть ли способ добавить специфику c теги или атрибуты в html, которые преобразуются в специфицированный c атрибут внутри NSAttributedString?

Я хочу сохранить эти контексты и идентификаторы, прикрепленные к их соответствующим предложениям. Есть ли способ сделать это?

Спасибо

...