Элемент XMLE с тегами между строками
Я создаю документ 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!)
Это работает нормально, но для сегле я хочу добавить несколько тегов между текстом, как "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"/>
(если мы заметим, что для "<" он заменяется на "<", а для ">" заменяется на ">")
Может кто-нибудь, пожалуйста, дайте мне знать, как мы можем справиться с этим.
1 ответ
Попробуй обратным образом спроектировать, как это должно быть: проверить результат 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
больше).