在 R 中编辑 XML 文件

2024-03-01

我有一个包含以下元素的 xml 文档:

<sequence id = "ancestralSequence"> 
    <taxon id="test">
     </taxon>       
    ACAGTTGACACCCTT
</sequence>

并想解析“taxon”标签内的新字符序列。我开始研究 XML 包文档,但还找不到简单的解决方案。我的代码:

# load packages
require("XML")

# create a new sequence
newSeq <- "TGTCAATGGAACCTG"

# read the xml
secondPartXml <- xmlTreeParse("generateSequences_secondPart.xml")

我用 xmlParse 读取它,然后用 XPath 表达式得到我想要的部分。例如,对于您的测试数据,以下是如何获取序列标记中文本的值:

x=xmlParse("test.xml")
xmlValue(xpathApply(x,"//sequence")[[1]])
## [1] "\n            \n    ACAGTTGACACCCTT\n"

-- 两个空行,一些空格,然后是碱基。

要获取分类单元标签中的文本:

xmlValue(xpathApply(x,"//sequence/taxon")[[1]])
## [1] "\n     "

——空,只是一个空行。

现在,要将一个字符串替换为另一个字符串,您只需找到“文本节点”,它是一些带有隐形魔法的 XML,因此它看起来就像文本,但实际上并非如此,并将其值设置为某个值。

给定一些包含几个序列的数据,假设您想将每个序列括起来,开头为 CCCCC,结尾为 GGGGGGG:

<data>
<sequence id = "ancestralSequence"> 
    <taxon id="test">Taxon
     </taxon>       
    ACAGTTGACACCCTT
</sequence>
<sequence id = "someotherSequence"> 
    <taxon id="thing">Taxoff
     </taxon>       
    GGCGGCGCGGGGGGG
</sequence>
</data>

代码如下:

# read in to a tree:
x = xmlParse("test.xml")

# this returns a *list* of text nodes under sequence
# and NOT the text nodes under taxon
nodeSet = xpathApply(x,"//sequence/text()")

# now we loop over the list returned, and get and modify the node value:
sapply(nodeSet,function(G){
  text = paste("CCCCC",xmlValue(G),"GGGGGGG",sep="")
  text = gsub("[^A-Z]","",text)
  xmlValue(G) = text
})

请注意,这是完成的引用这在 R 中很奇怪。毕竟,对象x已经改变了,尽管我们没有直接对其做任何事情。我们在循环中使用的节点是对存储在x object.

无论如何,这应该对你有用。请注意,“解析”根本不意味着替换,而是关于我们如何分析表达式中的语法,在本例中挑选出 XML 文档的标签、属性和内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 R 中编辑 XML 文件 的相关文章

随机推荐

  • 在 Spark DataFrame-Scala 中格式化 TimestampType

    当我尝试将字符串字段转换为 Spark DataFrame 中的 TimestampType 时 输出值具有微秒精度 yyyy MM dd HH mm ss S 但我需要的格式是yyyy MM dd HH mm ss即 不包括微秒精度 另外
  • CGAL:线段和多边形之间的交点?

    我有一组多边形 我想测试它和线段之间的交集 我检查了手册 但找不到匹配的功能 点 线 线段 三角形 平面之间确实存在交点 并且多边形之间的交点也在那里 我的问题是 有这样的功能吗 如果不是 是否意味着我需要将多边形分解成段并在这些段之间进行
  • 是否可以在 Perl foreach 循环中分配两个变量?

    是否可以在 Perl foreach 循环中将数组中的相同数据分配给两个变量 我正在使用 Perl 5 我想我在 Perl 6 中遇到了一些东西 像这样的东西 my var1 my var2 foreach var1 var2 array
  • postgresql 中的临时表在所有客户端会话中都可见吗?

    我想创建一个临时表 以便能够将其连接到几个表 因为将这些表与建议的临时表的内容连接起来需要花费大量时间 获取临时表的内容非常耗时 重复它一遍又一遍地花费越来越多的时间 当我的需求完成时 我将删除临时表 我想知道这些临时表是否在其他客户端会话
  • 如何让 fontawesome 在 Azure 网页部署上工作?

    我们正在使用 Twitter Bootstrap 和字体真棒 http fortawesome github com Font Awesome用于图标支持 当部署到我们的一台 IIS 服务器时 我需要添加 MIME 支持 当部署到Azure
  • 调整图像大小而不丢失 EXIF 数据?

    我编写了一个小脚本 可以从 FTP 服务器下载 TIFF 图像 然后调整它们的大小并将它们保存为 JPG 到目前为止 一切顺利 但在压缩步骤 如下所列 中 我丢失了文件中的 EXIF 数据 有没有一种优雅的方法可以在不丢失 EXIF 数据的
  • 如何从 Python ConfigParser .items() 中排除默认值?

    我使用 ConfigParser 从配置文件加载数据 如下所示 测试 conf myfiles fileone datadir s somefile foo filetwo datadir s nudderfile foo load py
  • 尝试实施 Azure Active Directory B2C 时出现 404 错误

    我正在尝试在我正在开发的新页面中实现 Azure Active Directory B2C 但我得到了这个404 File or directory not found尝试从我的页面登录时出错 我创建了租户 注册了我的应用程序 创建了我的政
  • Elasticsearch 使用带有同义词的 shingle 过滤器

    我有以下文件 south africa north africa 我想从以下位置检索我的 南非 文档 s africa a southafrica b safrica c 我定义了以下过滤器和分析器 POST test index sett
  • 非 2xx 状态代码响应是否应包含 CORS 特定标头

    非 2XX 状态代码响应是否仍包含 CORS 特定标头 例如Access Control Allow Origin Access Control Allow Methods and Access Control Max Age 这对客户来说
  • Bootstrap 4 - 如何使固定顶部导航栏在滚动时消失

    使用 Bootstrap 4 如何使固定顶部导航栏在滚动时消失 我在下面附上了默认 Bootstrap 4 导航栏的 html 代码
  • 无法加载 DLL“db2app64.dll”

    我正在写一个 NET框架应用程序并尝试连接到服务器上的 DB2 数据库 尝试时 我收到错误 System DllNotFoundException 无法加载 DLL db2app64 dll 找不到指定的模块 HRESULT 异常 0x80
  • PDF:什么是 DeviceRGB?

    Is this a 自己的色彩空间 例如 Adob eRGB 和 sRGB 或者是这个 b 设备使用的 RGB 色彩空间的名称 如果是 b 应该使用什么颜色空间来渲染 pdf sRGB 是默认使用的吗 pdf 查看器应用程序是否应该能够更改
  • 在 Xcode 7 GM 上启用僵尸对象会导致 _NSZombie_BSXPCMessage 类在两者中实现?和?

    刚刚下载了 XCode 7 GM 并在我的应用程序的 iOS 9 模拟器上尝试一下 但是 我在控制台上收到一条奇怪的消息 objc 2213 Class NSZombie BSXPCMessage is implemented in bot
  • 在 MVC 应用程序中使用 jquery 与 ajax 和 json [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在开发一个 MVC 应用程序 使
  • HTML 验证:为什么将交互元素放入交互元素内无效?

    免责声明 我知道它不是有效的 HTML 我想了解为什么不允许 W3C 建议像这样的交互元素button or a不得包含其他交互元素 我可以找到很多提到此规则和一些解决方法的资源 还有一些与此规则如何影响可访问性和屏幕阅读器相关的资源 但几
  • PHP 日期时间设置时区 2038

    我在项目中使用 DateTime 转换所有日期 从 UTC 到欧洲 维也纳 现在我的日期超过 2038 年 但无法获得正确的时间 示例代码 met new DateTimeZone Europe Vienna utc new DateTim
  • 为什么我无法更改 UILabel 的框架?

    我这两天一直在尝试修改一个框架UILabel 哪个 很荒谬 UILabel是一个 IBOutlet 但这不是原因 为什么它不起作用 我试图创建一个UILabel以编程方式和 它仍然不起作用 我是这样做的 self descriptionLa
  • 即使 Windows 重新启动后,C# AddFontResource 仍无法工作

    我正在尝试使用下面的代码使用 C 代码安装字体 调用InstallFont不会抛出任何异常并返回1 我认为这表明它已经安装了字体 但是 该字体既没有出现在 Windows Fonts 文件夹中的已安装字体列表中 也没有出现在检查 Insta
  • 在 R 中编辑 XML 文件

    我有一个包含以下元素的 xml 文档