【问题标题】:Adding a child to a node using xml2使用 xml2 将子节点添加到节点
【发布时间】:2018-02-12 16:38:25
【问题描述】:

我觉得这很容易,但我就是无法让它发挥作用。

假设我有这个节点

{xml_document}
<var ID="V512" name="supqad1" files="F1" dcml="0" intrvl="discrete">
 [1] <location width="1"/>
 [2] <labl>\nAdministration of supplementary questionnaire 1\n</labl>
 [3] <valrng>\n  <range min="1" max="3"/>\n</valrng>
 [4] <invalrng>\n  <range min="6" max="9"/>\n</invalrng>
 [5] <sumStat type="vald">\n18644\n</sumStat>
 [6] <sumStat type="invd">\n24356\n</sumStat>
 [7] <catgry>\n  <catValu>\n1\n</catValu>\n  <labl>\nCompleted by respondent, no help from you\n</labl>\n</catgry>
 [8] <catgry>\n  <catValu>\n2\n</catValu>\n  <labl>\nCompleted by respondent, some help from you\n</labl>\n</catgry>
 [9] <catgry>\n  <catValu>\n3\n</catValu>\n  <labl>\nFace to face interview\n</labl>\n</catgry>
[10] <catgry missing="Y">\n  <catValu>\n6\n</catValu>\n  <labl>\nNot applicable\n</labl>\n</catgry>
[11] <catgry missing="Y">\n  <catValu>\n9\n</catValu>\n  <labl>\nNo answer\n</labl>\n</catgry>
[12] <varFormat type="numeric" schema="other"/>

我只想像这样向节点添加第 13 个子节点:

&lt;whatever&gt; &lt;other&gt; hello &lt;/other&gt; &lt;/whatever&gt;

我确实查看了来自 xml2 的修改小插图,但我无法让它工作,因为 add_new_child&lt; 字符转换为转义的 xml 字符。

有什么想法吗?

test.xml:

<var ID="V512" name="supqad1" files="F1" dcml="0" intrvl="discrete">
  <location width="1"/>
  <labl>
Administration of supplementary questionnaire 1
</labl>
  <valrng>
    <range min="1" max="3"/>
  </valrng>
  <invalrng>
    <range min="6" max="9"/>
  </invalrng>
  <sumStat type="vald">
18644
</sumStat>
  <sumStat type="invd">
24356
</sumStat>
  <catgry>
    <catValu>
1
</catValu>
    <labl>
Completed by respondent, no help from you
</labl>
  </catgry>
  <catgry>
    <catValu>
2
</catValu>
    <labl>
Completed by respondent, some help from you
</labl>
  </catgry>
  <catgry>
    <catValu>
3
</catValu>
    <labl>
Face to face interview
</labl>
  </catgry>
  <catgry missing="Y">
    <catValu>
6
</catValu>
    <labl>
Not applicable
</labl>
  </catgry>
  <catgry missing="Y">
    <catValu>
9
</catValu>
    <labl>
No answer
</labl>
  </catgry>
  <varFormat type="numeric" schema="other"/>
</var>

【问题讨论】:

    标签: r xml2


    【解决方案1】:

    你可以像这样添加新节点:

    my_xml <- read_xml("<fruits><apple/><banana/><grape/></fruits>")
    
    my_xml
    {xml_document}
    <fruits>
    [1] <apple/>
    [2] <banana/>
    [3] <grape/>
    
    my_xml %>% 
      xml_add_child("whatever") %>%
      xml_add_child("other", "hello")
    
    my_xml
    {xml_document}
    <fruits>
    [1] <apple/>
    [2] <banana/>
    [3] <grape/>
    [4] <whatever>\n  <other>hello</other>\n</whatever>
    

    【讨论】:

      【解决方案2】:

      作为替代方案,遵循xml2 小插图,使用与史蒂文相同的示例:

      my_xml <- read_xml("<fruits><apple/><banana/><grape/></fruits>")
      xml_add_child(my_xml, read_xml("<whatever> <other> hello </other> </whatever>"))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-29
        • 1970-01-01
        • 1970-01-01
        • 2016-10-31
        相关资源
        最近更新 更多