在R中解析xml文件及其元素

明天小姐

我正在尝试解析具有以下结构的XML文件

 <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://12345hc.com/xsd">
            <xs:complexType name="Context">
                <xs:sequence>
                    <xs:element minOccurs="0" name="aNum" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="aId" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="bURI" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="facility" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="fSessionId" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="ID" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="pwrd" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="profileID" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="sToken" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="sId" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="tId" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="uNum" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="webURI" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="xZRT" nillable="true" type="xs:string"/>
                </xs:sequence>
            </xs:complexType>
        </xs:schema>

我试图选择具有name="Context"标签的节点

在此标签中,选择标记为ID的元素,
<xs:element minOccurs="0" name="ID" nillable="true" type="xs:string"/>

并将值“ 111111”添加到此元素ID

有关完成此操作的任何指示/答案将非常有帮助。提前致谢。

你可以做

txt <- '<xs:schema attributeFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://12345hc.com/xsd">
            <xs:complexType name="Context">
                <xs:sequence>
                    <xs:element minOccurs="0" name="aNum" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="aId" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="bURI" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="facility" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="fSessionId" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="ID" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="pwrd" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="profileID" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="sToken" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="sId" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="tId" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="uNum" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="webURI" nillable="true" type="xs:string"/>
                    <xs:element minOccurs="0" name="xZRT" nillable="true" type="xs:string"/>
                </xs:sequence>
            </xs:complexType>
        </xs:schema>'
library(XML)
xml <- xmlParse(txt, asText=TRUE)
ns <- getNodeSet(xml, '//*[@name="Context"]/xs:sequence/xs:element')
id <- which(sapply(ns, xmlGetAttr, "name") == "ID")
xmlValue(ns[[id]]) <- "11111"
xml
# <?xml version="1.0"?>
# <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://12345hc.com/xsd">
#   <xs:complexType name="Context">
#     <xs:sequence>
#       <xs:element minOccurs="0" name="aNum" nillable="true" type="xs:string"/>
#       <xs:element minOccurs="0" name="aId" nillable="true" type="xs:string"/>
#       <xs:element minOccurs="0" name="bURI" nillable="true" type="xs:string"/>
#       <xs:element minOccurs="0" name="facility" nillable="true" type="xs:string"/>
#       <xs:element minOccurs="0" name="fSessionId" nillable="true" type="xs:string"/>
#       <xs:element minOccurs="0" name="ID" nillable="true" type="xs:string">11111</xs:element>
#       <xs:element minOccurs="0" name="pwrd" nillable="true" type="xs:string"/>
#       <xs:element minOccurs="0" name="profileID" nillable="true" type="xs:string"/>
#       <xs:element minOccurs="0" name="sToken" nillable="true" type="xs:string"/>
#       <xs:element minOccurs="0" name="sId" nillable="true" type="xs:string"/>
#       <xs:element minOccurs="0" name="tId" nillable="true" type="xs:string"/>
#       <xs:element minOccurs="0" name="uNum" nillable="true" type="xs:string"/>
#       <xs:element minOccurs="0" name="webURI" nillable="true" type="xs:string"/>
#       <xs:element minOccurs="0" name="xZRT" nillable="true" type="xs:string"/>
#     </xs:sequence>
#   </xs:complexType>
# </xs:schema>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Java中的XML文件中删除节点及其元素

来自分类Dev

从Java中的XML文件中删除节点及其元素

来自分类Dev

访问xml文件中的元素及其路径-PERL

来自分类Dev

如何从 XML 文件中删除元素及其内容

来自分类Dev

在R中解析xml文件

来自分类Dev

如何从XML文件中获取相关元素及其子元素?

来自分类Dev

如何从XML文件中获取相关元素及其子元素?

来自分类Dev

在R中解析10 GB XML文件

来自分类Dev

使用rentrez解析R中的XML文件

来自分类Dev

使用Python解析xml文件中的特定元素

来自分类Dev

使用Java解析XML文件中的嵌套元素

来自分类Dev

使用 minidom 在 xml 文件中解析一个元素

来自分类Dev

在C#中删除特定的XML元素及其子元素

来自分类Dev

在R中解析XML

来自分类Dev

循环文件及其在R中的内容

来自分类Dev

在R中解析大型XML文件非常慢

来自分类Dev

在R中解析MPEG21 XML文件

来自分类Dev

在bash中读取和解析文件及其it参数

来自分类Dev

在Perl中解析XML文件

来自分类Dev

在Android中解析XML文件

来自分类Dev

在python中解析xml文件

来自分类Dev

使用元素名称中的空格解析XML

来自分类Dev

使用jaxb解析xml中的嵌套元素

来自分类Dev

XML解析,iOS中的联接元素

来自分类Dev

解析javascript / jq中的XML元素

来自分类Dev

在XML python中解析子元素

来自分类Dev

如何从 C# 中的 Xml 解析元素?

来自分类Dev

在Android中使用简单XML解析XML文件列表元素

来自分类Dev

解析XML并使用XML元素重写文件名