我已使用C#,
通过此代码生成xmldocument protected XDocument generateXML()
{
XDocument xdoc = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement("Invoices",
new XElement("Invoice",
new XElement("InvoiceNumber", "s10838652")
.......
return xdoc;
}
我用另一种方法:
public override void RunWintrackConnector()
{
XDocument xml = generateXML();
.....
然后我想在每个XML节点中放入数据:(而不是s10838652我想将(string.Concat(bill.invoice,bill.num);)分配给InvoiceNumber节点。)
我有正确的部分但不确定如何访问xml的每个节点:
xmlnode(for example InvoiceNumber) = Win2.IntegrationXML.XMLMisc.DirtyData.getStringValue(string.Concat(bill.invoice, bill.num));
答案 0 :(得分:0)
您可以使用XElement
或XDocument
来填写所需的值。
var valueToInsert = Win2.IntegrationXML.XMLMisc.DirtyData
.getStringValue(string.Concat(bill.invoice, bill.num));
XDocument xml = generateXML();
xml.Element("Invoices")
.Elements("Invoice").First() //this First is just an example
.Element("InvoiceNumber")
.Value = valueToInsert;
Element()
返回找到的第一个子节点,Elements()
获取具有该节点名称的所有子节点的列表。找出你的节点如何嵌套的模式,你应该全部设置。
作为旁注,您可以使用XDocument
变量执行上述操作,但我更倾向于将所有内容保留为XElement
以增加Linq兼容性。
答案 1 :(得分:0)
xml
.Elements("Invoices")
.Elements("Invoice")
.Elements("InvoiceNumber")
.First()
.Value = string.Concat(bill.invoice, bill.num);
编辑 - 查看您的所有发票:
foreach(var invoice in xml.Elements("Invoices").Elements("Invoice"))
{
invoice.Element("InvoiceNumber").Value = "asdf";
}
如果您熟悉XPath,这相当于选择所有发票和“发票/发票”。