1

我正在创建一个 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; (如果我们注意到“<”它被替换为“<”并且“>”被替换为">")

任何人都可以让我知道我们该如何处理。

4

1 回答 1

2

尝试反向工程它应该是什么:检查结果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)。

于 2017-12-13T10:04:38.837 回答