我正在创建一个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"
,如果我们注意到我需要插入&#34; ph&#34;在字符串之间标记。
仅供参考:我尝试在字符串之间插入" <ph x=\"#\" type=\"x-LPH\"/> "
此文字,但这并没有像输出xml文件中那样"ph"
标记显示为<ph x="0" type="x-LPH"/> OBLIGATOIRE <ph x="1" type="x-LPH"/>
(如果我们通知&#34;&lt;&#;;它被替换为&#34;&lt;&#34;并且&#34;&gt;&#34;被替换为&#34;&gt;&#34; )
任何人都可以告诉我们如何处理这个问题。
答案 0 :(得分: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个子节点:
XMLNode.text(withStringValue: "Sample Text ") as? XMLNode
XMLNode.element(withName: "Sample Text ") as? XMLElement
XMLNode.text(withStringValue: " Here") as? XMLNode
然后将所有3个孩子添加到父笔记segEle
(不再需要stringValue
)。