Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:替换XML的CDATA部分中的实体_Xml_R - Fatal编程技术网

R:替换XML的CDATA部分中的实体

R:替换XML的CDATA部分中的实体,xml,r,Xml,R,我有这样一个XML文件: <TextBody> <![CDATA[First line.&amp;#10;Second line.]]> </TextBody> 所以我尝试了XMLpackage: xmlParse("<TextBody><![CDATA[First line.&amp;#10;Second line.]]></TextBody>", replaceEntities=T

我有这样一个XML文件:

<TextBody>
  <![CDATA[First line.&amp;#10;Second line.]]>
</TextBody>
所以我尝试了
XML
package:

xmlParse("<TextBody><![CDATA[First line.&amp;#10;Second line.]]></TextBody>",
         replaceEntities=TRUE)
xmlParse(“”,
replaceEntities=TRUE)
然后我被困在这第一步,因为
replaceEntities
选项在这里似乎不起作用,我仍然得到
&#10;


任何人都可以告诉我如何从这个XML中提取正确的文本吗?

我也无法让
replaceEntities
工作,因此您可以使用gsub

xpathSApply(doc, "//TextBody", function(x) gsub("&amp;#10;", "\n", xmlValue(x) ))
[1] "First line.\nSecond line."
此外,添加xmlParse options=NOENT或replaceEntities=TRUE不会更改以下任何结果。我总是在CDATA中获取实体引用

doc <- xmlParse("<a>test &quot; &apos; &lt; &gt; &amp;</a>")
xpathSApply(doc, "//a", xmlValue)
[1] "test \" ' < > &"

doc <- xmlParse("<a><![CDATA[test &quot; &apos; &lt; &gt; &amp;]]></a>")
xpathSApply(doc, "//a", xmlValue)
[1] "test &quot; &apos; &lt; &gt; &amp;"
doc”)
xpathSApply(doc,“//a”,xmlValue)
[1] “测试”

我也无法让
replaceEntities
工作,所以您可以使用gsub

xpathSApply(doc, "//TextBody", function(x) gsub("&amp;#10;", "\n", xmlValue(x) ))
[1] "First line.\nSecond line."
此外,添加xmlParse options=NOENT或replaceEntities=TRUE不会更改以下任何结果。我总是在CDATA中获取实体引用

doc <- xmlParse("<a>test &quot; &apos; &lt; &gt; &amp;</a>")
xpathSApply(doc, "//a", xmlValue)
[1] "test \" ' < > &"

doc <- xmlParse("<a><![CDATA[test &quot; &apos; &lt; &gt; &amp;]]></a>")
xpathSApply(doc, "//a", xmlValue)
[1] "test &quot; &apos; &lt; &gt; &amp;"
doc”)
xpathSApply(doc,“//a”,xmlValue)
[1] “测试”