字符串之间带有标记的 XMLElement
XMLElement with tags in between String
我正在创建一个 XML 文档并尝试在 XML 元素之间插入标签,如下所示
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"
标签显示为 <ph x="0" type="x-LPH"/> OBLIGATOIRE <ph x="1" type="x-LPH"/>
(如果我们注意到“<”被替换为“<”,“>”被替换为“>”)
任何人都可以告诉我我们该如何处理这个问题。
尝试 backwards-engineer 它应该是怎样的:检查 XMLElement(xmlString: "<seg>Sample Text <ph x=\"1\" /> Here")
的结果及其 children.
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 个 children 添加到 parent 注释 segEle
(不再需要 stringValue
)。
我正在创建一个 XML 文档并尝试在 XML 元素之间插入标签,如下所示
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"
标签显示为 <ph x="0" type="x-LPH"/> OBLIGATOIRE <ph x="1" type="x-LPH"/>
(如果我们注意到“<”被替换为“<”,“>”被替换为“>”)
任何人都可以告诉我我们该如何处理这个问题。
尝试 backwards-engineer 它应该是怎样的:检查 XMLElement(xmlString: "<seg>Sample Text <ph x=\"1\" /> Here")
的结果及其 children.
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 个 children 添加到 parent 注释 segEle
(不再需要 stringValue
)。