如何向xml中添加新节点
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何向xml中添加新节点相关的知识,希望对你有一定的参考价值。
我的XML内容是
<?xml version="1.0" encoding="utf-8"?><c id='0'><h id='96' ip='125.78.70.*' addtime='17:51' face='0' color1='0' username='路过'><![CDATA[可以]]></h></c>
是ASP向xml中添加新节点
能说的详细点吗?
XmlElement el=xmlDoc.CreateElement("person"); //添加person节点
el.SetAttribute("name","风云"); //添加person节点的属性"name"
el.SetAttribute("sex","女"); //添加person节点的属性 "sex"
el.SetAttribute("age","25"); //添加person节点的属性 "age"
XmlElement xesub1=xmlDoc.CreateElement("pass"); //添加person节点的里的节点
xesub1.InnerText="123";//设置文本节点
el.AppendChild(xesub1);
XmlElement xesub2=xmlDoc.CreateElement("Address");
xesub2.InnerText="昆明";//设置文本节点
el.AppendChild(xesub2);
xmldocSelect.AppendChild(el);
xmlDoc.Save(Server.MapPath("user.xml"));本回答被提问者采纳 参考技术B 教你个捷径——使用DataSet.
DataSet.ReadXML("Path");
这样就读取了Path指定的xml文件的信息并存到DataSet.Tables[0].
在此Datatabl中修改数据病保存到DataSet中,
DataSet.WriteXML("Path");//保存修改 参考技术C 如果是C#的话,去我的文库看看吧,有一个关于XML操作的文件
如何使用 sed 向每个 XML 节点添加命名空间
【中文标题】如何使用 sed 向每个 XML 节点添加命名空间【英文标题】:How to add a namespace to each XML node with sed 【发布时间】:2021-12-01 02:55:48 【问题描述】:给定以下 XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response xmlns="...">
<root>
<test>abc</test>
</root>
</response>
我需要像这样为每个元素添加一个命名空间:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns:response xmlns:ns="...">
<ns:root>
<ns:test>abc</ns:test>
</ns:root>
</ns:response>
sed
可以吗?我知道sed
不是处理 XML 的最佳工具...
可能有嵌套节点,但没有一个已经拥有命名空间。最后,没有属性。
【问题讨论】:
如果没有更详细的说明您需要做什么,很难知道 - 对于给出的单个示例,您可以使用s/test/ns:test/g
但我确定这不是您想要的。
我不知道节点的名称......我只需要一种简单的方法来将给定的命名空间添加到 XML 中的所有节点。您建议的解决方案意味着我知道标签...
我的建议是故意指出你没有给我们足够的信息。你曾经在同一行有两个标签吗?嵌套标签?标签是否包含字符串“ns:”?是否有任何标签已经 有命名空间前缀?它们中的任何一个都有属性吗?有没有自闭的?所有这些复杂性都可能使某些解决方案无效。
这可能会有所帮助:How do I add a namespace to all elements in a node?
好的,更新问题。
【参考方案1】:
对需求的描述如此简陋,您只能这样做:
sed 's!</\|<!&ns:!g' your_file
代码
使用!
作为分隔符,所以/
不需要转义;
搜索字符串通过替换 \|
匹配 </
或 <
;
替换由匹配的部分本身组成,&
,后跟ns:
;
所有这些都是通过g
在整条线上完成的。
您在评论中说您想跳过以<?xml
开头的行的提交,但更改s
命令只会使其更长且可读性降低。
由于该行始终是第一行,因此您可以通过在s
命令前添加2,$
来定位除第一行之外的所有行。
【讨论】:
这正是我要找的...只需要跳过第一行 (<?xml...
)。以上是关于如何向xml中添加新节点的主要内容,如果未能解决你的问题,请参考以下文章