XML XElement构建一个XML文档

本文关键字:XML 一个 文档 XElement 构建 | 更新日期: 2023-09-27 18:37:08

嗨,我是XML构建的新手,我以前基本上没有使用它,我一直更喜欢json。

有一个解决方案,我只是用字符串制作它并转换为 XML 对象,但我如何使用 XElement 类来做到这一点?

这是文档:

<?xml version="1.0" encoding="utf-8"?>
 <requestblock version="3.67">
    <alias>ALIAS</alias>
    <request type="AUTH"> 
       <operation> 
          <sitereference>test12345</sitereference> 
          <accounttypedescription>TEST</accounttypedescription> 
          <parenttransactionreference>12-3-4567</parenttransactionreference> 
       </operation> 
       <merchant> 
          <orderreference>Example recurring auth</orderreference>
       </merchant> 
       <customer> </customer> 
       <billing> 
          <amount currencycode="GBP">1234</amount> 
          <subscription type="TEST">
             <number>1</number>
          </subscription> 
       </billing> 
       <settlement/>
    </request> 
 </requestblock>

我已经有这样的一部分代码:

       XElement address =
            new XElement("alias", "TEST",
            new XElement("request", new XAttribute("type", "AUTH"),
            new XElement("City", "Mercer Island"),
            new XElement("State", "WA"),
            new XElement("Postal", "68042")
       ));

但是我对别名有问题,因为别名在所有元素之后都是关闭的,而不是使用相同的表示法:

<alias>TEST
    <request type="AUTH">
        <City>Mercer Island</City>
        <State>WA</State>
        <Postal>68042</Postal>
    </request>
</alias>

如您所见,符号是问题所在。

XML XElement构建一个XML文档

你正在将别名设置为你的根元素,它应该是请求块。如果你从这样的请求块开始:

XElement address =
       new XElement("requestblock", new XAttribute("version",3.67),
       new XElement("alias", "TEST"),
       new XElement("request", new XAttribute("type", "AUTH"),
       new XElement("City", "Mercer Island"),
       new XElement("State", "WA"),
       new XElement("Postal", "68042")

它会给你

<requestblock version="3.67">
   <alias>TEST</alias>
   <request type="AUTH">
      <City>Mercer Island</City>
      <State>WA</State>
      <Postal>68042</Postal>
   </request>
</requestblock>