c# - 从信息路径模板创建表单

标签 c# xml xpath sharepoint-2010 infopath2010

我已经通过编程方式从模板 (xsn) 创建了 xml 文件(信息路径形式)。 我有来自模板文件 (xsn) 的以下 xml 文件结构。现在我想将值附加到 xml 文件。

   <my:PropertyDetails>
    <my:AddressSelectionList>2201.00000000000</my:AddressSelectionList>
    <my:PropRef>210</my:PropRef>
    <my:UPRN>2201.00000000000</my:UPRN>
    <my:AddressLine>220 test road</my:AddressLine>
    <my:PropId>210</my:PropId>
    <my:BlockUPRN></my:BlockUPRN>
    <my:Attachments xsi:nil="true"></my:Attachments>
    <my:Filegroup>
      <my:URL></my:URL>
      <my:URLText></my:URLText>
    </my:Filegroup>
  </my:PropertyDetails>
  <my:ScaffoldMeasure>
    <my:groupRepeat>
      <my:Description></my:Description>
      <my:Code></my:Code>
      <my:Unit></my:Unit>
      <my:Rate xsi:nil="true"></my:Rate>
      <my:Quantity></my:Quantity>
      <my:Cost xsi:nil="true"></my:Cost>
      <my:Comments></my:Comments>
      <my:ID></my:ID>
      <my:Title></my:Title>
    </my:groupRepeat>
  </my:ScaffoldMeasure>
<my:PorchBalcony>
    <my:groupRepeat>
      <my:Description></my:Description>
      <my:Code></my:Code>
      <my:Unit></my:Unit>
      <my:Rate xsi:nil="true"></my:Rate>
      <my:Quantity></my:Quantity>
      <my:Cost xsi:nil="true"></my:Cost>
      <my:Comments></my:Comments>
      <my:ID></my:ID>
      <my:Title></my:Title>
    </my:groupRepeat>
  </my:PorchBalcony>

我正在尝试访问如下:

> XmlNodeList properNodeList =
> xmlDoc.GetElementsByTagName("my:PropertyDetails");
> XmlNodeList smNodeList = xmlDoc.GetElementsByTagName("my:ScaffoldMeasure");

var a=  new XElement(
                myns + "groupRepeat",
                from c in xmlDoc.Elements(nsm + "ScaffoldMeasure") select 
                new XElement(nsm + "groupRepeat",
       new XElement(nsm + "Description", "scaffold1"),
                new XElement(nsm + "Code", "sc1"),
                new XElement(nsm + "Unit", "sc1"),
                new XElement(nsm + "Rate", "sc1"),
                new XElement(nsm + "Quantity", "sc1"),
                new XElement(nsm + "Cost", "sc1"),
                new XElement(nsm + "Comments", "sc1"),
                new XElement(nsm + "ID", "sc1"),
                new XElement(nsm + "Title", "ssssssss")));         
       xmlDoc.Save(@"C:\ttt.xml");

现在我需要在 groupRepeat 部分附加值。任何人都可以建议将值附加到该部分的最佳方法是什么?
谢谢

最佳答案

即使在我在评论中询问了几次澄清之后,我仍然不确定您究竟想要什么。这个怎么样:

.....
XNamespace xsi = "http://www.w3.org/2001/XMLSchema-instance";

var sm = xmlDoc.Descendants(nsm + "ScaffoldMeasure").First();
var groupRepeat = new XElement(nsm + "groupRepeat",
                       new XElement(nsm + "Description", "scaffold1"),
                       new XElement(nsm + "Code", "sc1"),
                       new XElement(nsm + "Unit", "sc1"),
                       new XElement(nsm + "Rate", "sc1", 
                                        new XAttribute(xsi + "nil", true)),
                       new XElement(nsm + "Quantity", "sc1"),
                       new XElement(nsm + "Cost", "sc1", 
                                        new XAttribute(xsi + "nil", true)),
                       new XElement(nsm + "Comments", "sc1"),
                       new XElement(nsm + "ID", "sc1"),
                       new XElement(nsm + "Title", "ssssssss"));
sm.Add(groupRepeat);
xmlDoc.Save(@"C:\ttt.xml");

我假设你只有一个 <my:ScaffoldMeasure> XML 中的节点并且您想添加另一个 <my:groupRepeat>节点完成,子节点位于 <my:ScaffoldMeasure> 中.

关于c# - 从信息路径模板创建表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24820259/

相关文章:

c# - 在 Javascript 中获取属性背后的代码?

html - IE随机打印出源代码(似乎不确定)

c# - 如何从 Outlook 功能区上下文菜单中获取当前邮件项目

c# - 将字符串转换为正确的 URI 格式?

android - 具有自定义粗细的虚线分隔符

java - Android 调用带有 onClick 错误的 fragment 方法

xpath - xpath:如何选择<br>标记之前或之后的所有文本节点?\n可能吗?

ruby - XPath 轴,获取所有后续节点直到

ajax - 如何获得XPATH动态变化的AJAX元素

c# - 在 C# 中解压缩存档