簡體   English   中英

XMLElement,字符串之間有標簽

[英]XMLElement with tags in between String

我正在創建一個XML文檔,並嘗試在XMLElement之間插入標簽,如下所示

let tEle = XMLElement.element(withName: "xuv") as? XMLElement
let segEle = XMLElement.element(withName: "seg") as? XMLElement
segEle?.stringValue = "Sample Text Here"
tuvEle?.addChild(segEle!)

這工作正常,但對於segEle,我想在文本之間添加一些標簽,例如"Sample Text <ph x="1" type="x-LPH"/> Here" ,如果我們注意到我需要插入“ ph”標簽在字符串之間。

僅供參考:我試圖在字符串之間插入" <ph x=\\"#\\" type=\\"x-LPH\\"/> "但這在輸出xml文件中不起作用,因為"ph"標簽是顯示為&lt;ph x="0" type="x-LPH"/&gt; OBLIGATOIRE &lt;ph x="1" type="x-LPH"/&gt; &lt;ph x="0" type="x-LPH"/&gt; OBLIGATOIRE &lt;ph x="1" type="x-LPH"/&gt; (如果我們注意到將“ <”替換為“ <”,將“ >>替換為”>”)

誰能讓我知道我們該如何處理。

嘗試反向工程其預期效果:檢查XMLElement(xmlString: "<seg>Sample Text <ph x=\\"1\\" /> Here")及其子級的結果。

Sample Text <element/> Here
^^^^^^^^^^^^~~~~~~~~~~^^^^^
    |          |         |
    |          |         --------- Text node
    |          |
    |          ----- XMLElement
    |
    ----------- Text node
  • XMLElement僅適用於標簽;
  • XMLElement.addChild接受更通用的XMLNode類型。
  • XMLNode.Kind可以是.text ,而不是更簡單的stringValue

因此,您必須將簡單的字符串值分成3個子節點:

  1. XMLNode.text(withStringValue: "Sample Text ") as? XMLNode
  2. XMLNode.element(withName: "Sample Text ") as? XMLElement
  3. XMLNode.text(withStringValue: " Here") as? XMLNode

然后將所有3個孩子添加到父注釋segEle (不再需要stringValue )。

解析文本之間<div>標簽由 HTMLKit Swift</div><div id="text_translate"><p> I am trying to parse the HTML document, and get from HTML, URL, and Text, for this task I am using library HTMLKit, for URL I am using the next code:</p><pre> func parseHTML() { browser.evaluateJavaScript("document.body.innerHTML") { (result, error) in guard let html = result as? String, error == nil else { print("Failed to get html string") return } let document = HTMLDocument(string: html) print("Create html doc") let urls: [String] = document.querySelectorAll("div").compactMap({ element in guard let src = element.attributes["href"] as? String else { return nil } return src }) print("Found \(urls.count) urls \n") } }</pre><p> 一切正常,但我不知道如何解析文本之間</p><p> HTML 代碼:</p><pre> &lt;div class="V7Sr0 p5AXld PpBGzd YcUVQe"&gt;What are the alternatives now that the Google web search API has been...&lt;/div&gt;</pre><p> 如果我想獲得文本“現在 Google web 搜索 API 已經......”,我應該如何修改代碼</p></div>

[英]Parse text between <div> tags by HTMLKit Swift

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 將HTML轉換為帶有標簽的字符串 快速比較XMLElement 字符串中的 HTML 標簽,轉換為普通字符串 “ \\(string)”和字符串之間的區別? 解析文本之間<div>標簽由 HTMLKit Swift</div><div id="text_translate"><p> I am trying to parse the HTML document, and get from HTML, URL, and Text, for this task I am using library HTMLKit, for URL I am using the next code:</p><pre> func parseHTML() { browser.evaluateJavaScript("document.body.innerHTML") { (result, error) in guard let html = result as? String, error == nil else { print("Failed to get html string") return } let document = HTMLDocument(string: html) print("Create html doc") let urls: [String] = document.querySelectorAll("div").compactMap({ element in guard let src = element.attributes["href"] as? String else { return nil } return src }) print("Found \(urls.count) urls \n") } }</pre><p> 一切正常,但我不知道如何解析文本之間</p><p> HTML 代碼:</p><pre> &lt;div class="V7Sr0 p5AXld PpBGzd YcUVQe"&gt;What are the alternatives now that the Google web search API has been...&lt;/div&gt;</pre><p> 如果我想獲得文本“現在 Google web 搜索 API 已經......”,我應該如何修改代碼</p></div> NSRegularExpression 提取兩個 XML 標簽之間的文本 如何從html字符串中刪除所有標簽? RealmSwift + ObjectMapper 管理字符串數組(標簽) 匹配<a>字符串中的錨標簽,提取其“ href”</a> 從字符串中去除 HTML 標簽
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM