【问题标题】:Append childnode(s) base on parentnode's attribute in generating XML在生成 XML 时根据父节点的属性附加子节点
【发布时间】:2012-07-06 15:14:28
【问题描述】:

这里是代码。

<P type="DOC-2012-001">
    <V n="ID">0</V>
    <V n="TYPE">Page</V>
    <V n="STATUS">0</V>
    <V n="IMAGEFILE"></V>
    <V n="DATAFILE"></V>
    <V n="TEMPLATE IMAGE"></V>
    <V n="MIN_TYPES">0</V>
    <V n="MAX_TYPES">0</V>
    <V n="rules"></V>
    <F type="Remark1" pos="0" min="0" max="0"/>
    <F type="Remark2" pos="0" min="0" max="0"/>
</P>
<F type="Remark1">
    <V n="ID">0</V>
    <V n="TYPE">Field</V>
    <V n="STATUS">0</V>
    <V n="POSITION">0,0,0,0</V>
    <V n="MIN_TYPES">0</V>
    <V n="MAX_TYPES">0</V>
    <V n="ReqConf">8</V>
    <V n="rules">&lt;in&gt;&lt;r id=&quot;1&quot; rs=&quot;9&quot; /&gt;&lt;/in&gt;</V>
</F>

我希望将&lt;F&gt; 添加到&lt;P type=&gt; 之一中,并且有一个&lt;P&gt; 列表和一个&lt;F&gt; 列表,它们分开但由相同的“类型”引用。

【问题讨论】:

  • 如果您想了解更多,请告诉我们更多。您正在使用什么技术(XmlDocumentXDocument,或者根本不是 DOM?),您尝试过什么,...?
  • 您的示例不是有效的 XML。
  • @ArtemKoshelev:但它是一个有效的 HTML :)
  • @abatishchev X1 不是有效的 HTML 标记,然后;o) 此外,p 标记没有 type 属性。
  • 对不起,我正在生成 xml

标签: c# xml append


【解决方案1】:

类似这样的:

XDocument doc = new XDocument("file.xml");
var pTypeOne = doc.Descendants("P").Single(e => e.Attribute("type").Value == "1");
pTypeOne.Add(new XElement("X1"));

【讨论】:

  • 我希望你不会介意我的编辑,单线性对我来说看起来更好,希望你也一样:)
  • @abatishchev 我真的很喜欢它,在这种情况下看起来更简单:)
  • 手动(记住关闭标签)将是

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-11
  • 1970-01-01
  • 2014-12-15
  • 2012-11-10
  • 1970-01-01
相关资源
最近更新 更多