在R中的XML标记内替换管道分隔符的出现次数

时间:2017-11-03 17:30:54

标签: r xml

我有一个包含嵌入式XML内容的文本文件。字段用“|”分隔但是有一些值在xml标签内用管道分隔。我想用空格替换xml标签内的管道分隔符。

几行数据:

TASK_VIEWED_FLAG|TASK_OUTCOME|CURRENT_QUEUE|QUEUE_CHANGE_TS|
TASK_XML_DATA|SCORE_XML_DATA|
"N"|" "|"4"|"."|"<?xml version="1.0" encoding="UTF-8"?>
<tasks xmlns="xyz.com/abc/wkbh/task"><task><taskxml>"|
"<?xml version="1.0" encoding="UTF-8"?>
<scores xmlns:dnr="xyz.com/abc/wkbh/score"><score><scorexml>
<Params>score_var=26.0|perc_var=76.5|prop_var=0.74</Params>
<weight>w1=3.0|w2=7.0</weight>"

以下尝试弄乱了标题。

newtext <- readLines("sample.txt")
newtext <- gsub(">(.+?)|(.+?)|(.+?)<", ">\\1[[:space:]]\\2[[:space:]]\\3<", newtext)

对此的任何提示都非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用stringr包来替换使用>的{​​{1}}与下一个<之间的所有字符串中的管道。我还添加了>[^<]+<以避免替换[^"]

等标记之间的管道
<taskxml>"|"<?xml