C# 创建 XML 文件以发送到 ebay LMS API

C# Creating XML file to send to ebay LMS API

好的,所以我正在尝试创建一个 xml 文件来使用 ebay LMS 更新库存项目。

我在输出 Feed 文件的这一部分时遇到问题:

<ReviseInventoryStatusRequest xmlns="urn:ebay:apis:eBLBaseComponents">

这是我目前的代码:

using (var writer = XmlWriter.Create(stream, settings))
                {
                    writer.WriteStartDocument();
                    writer.WriteStartElement("ReviseInventoryStatusRequest");
                    writer.WriteStartAttribute("xmlns", "urn:ebay:apis:eBLBaseComponents");
                    writer.WriteEndAttribute();
                    writer.WriteStartElement("RequesterCredentials");
                    writer.WriteElementString("eBayAuthToken", ebayAuthTokenSetting.ToString());
                    writer.WriteEndElement();
                    writer.WriteElementString("Version", "967");
                    writer.WriteElementString("ErrorLanguage", "en_US");
                    writer.WriteElementString("WarningLevel", "High");

                    //int counter = 1;

                    //Add the products to feed which do not have variations
                    foreach (var ep in productsToProcess)
                    {
                        var product = _productService.GetProductById(ep.ProductID);
                        var productStockQuantity = product.GetTotalStockQuantity();

                        if (product.GetTotalStockQuantity() != productStockQuantity) {
                            writer.WriteStartElement("InventoryStatus");
                            writer.WriteElementString("SKU", ep.EbayProductSKU);
                            writer.WriteElementString("ItemID", ep.EbayID);
                            writer.WriteElementString("Quantity", productStockQuantity.ToString());
                            writer.WriteEndElement();

                            //ep.EbayProductStockQuantity = productStockQuantity;
                            //_ebayProductService.UpdateEbayProduct(ep);

                            sendEbayApiRequest = true;
                        }
                    }

                    writer.WriteEndElement(); // ReviseInventoryStatusRequest
                    writer.WriteEndDocument(); // productfeed
                }

我试过这个来输出文件的那部分:

writer.WriteStartAttribute("xmlns", "urn:ebay:apis:eBLBaseComponents");
writer.WriteEndAttribute();

也试过这个:

writer.WriteAttributeString("xmlns", null, "urn:ebay:apis:eBLBaseComponents", null);

以及上述代码片段的其他变体,例如:

writer.WriteAttributeString(null, "xmlns", null, "urn:ebay:apis:eBLBaseComponents");

我有点不知道如何做到这一点,我看过一些例子,但没有帮助。

任何人都可以提供帮助,谢谢。

好的,感谢@dbc 的帮助,我不得不使用以下代码。

writer.WriteStartElement("ReviseInventoryStatusRequest", "urn:ebay:apis:eBLBaseComponents");

输出

<ReviseInventoryStatusRequest xmlns="urn:ebay:apis:eBLBaseComponents">

谢谢@dbc