第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

XMLWriter 嘗試使用重復(fù)屬性

XMLWriter 嘗試使用重復(fù)屬性

C#
Qyouu 2022-07-23 17:05:48
更新:解決問(wèn)題的更新問(wèn)題是元素而不是屬性,并添加了我的 XML 輸出我必須向應(yīng)用程序提供一些 XML 編碼的字符串(我不經(jīng)常使用標(biāo)記語(yǔ)言,并且對(duì)它們的細(xì)微差別沒(méi)有很多經(jīng)驗(yàn))。我需要發(fā)送的格式如下(我無(wú)法控制):<ROOT><Unit UnitName="Unit XYZ"><Scheds Qty="5" ProdId="214" Comments="" /><Scheds Qty="200" ProdId="125" Comments="Need by 1/23" /><Scheds Qty="5000" ProdId="3100" Comments="" /></Unit><Unit UnitName="Unit ABC"><Scheds Qty="5" ProdId="214" Comments="" /><Scheds Qty="200" ProdId="125" Comments="Need by 1/25" /><Scheds Qty="5000" ProdId="3100" Comments="" /></Unit></ROOT>我試圖用它來(lái)寫這個(gè),XML Writer但我遇到了屬性Scheds重復(fù)的問(wèn)題。你可以在下面看到我在擺弄這個(gè)WriteString方法,但我相信我需要它作為一個(gè)屬性。我的代碼如下: //Top level root element                writer.WriteStartElement("ROOT");                //loop through list and determine the pu desc to create the xml element                foreach (Tuple<int, List<PLYOrder>> t in allOrders)                {                    var unit = PUList.Where(x => x.PUId == t.Item1).First().PUDesc.ToString();                    //Start each Unit as a new element                    writer.WriteStartElement("Unit");                    writer.WriteAttributeString("UnitName", unit);                    foreach(PLYOrder p in t.Item2)                    {                                              var qty = $"Qty=\"{p.Qty.ToString()}\"";                        var prodId = $"ProdId=\"{p.Product.Id.ToString()}\"";                        var Comments = $"Comments=\"{p.Comments}\"";                    writer.WriteStartElement("Scheds", qty);                    writer.WriteEndElement();                    writer.WriteStartElement("Scheds", prodId);                    writer.WriteEndElement();                    writer.WriteStartElement("Scheds", comments);                    writer.WriteEndElement();                    }                    writer.WriteEndElement();                }                writer.WriteEndElement();
查看完整描述

2 回答

?
斯蒂芬大帝

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊

看起來(lái)您使用WriteStartElement不正確。第二個(gè)參數(shù)不是屬性,而是命名空間 URI。這是一個(gè)簡(jiǎn)單的例子


XmlWriterSettings settings = new XmlWriterSettings();

settings.Indent = true;

settings.OmitXmlDeclaration = true;

XmlWriter writer = XmlWriter.Create(Console.Out, settings);


writer.WriteStartElement("ROOT");


writer.WriteStartElement("Unit");

writer.WriteAttributeString("UnitName", "Unit XYZ");

writer.WriteEndElement();


writer.WriteStartElement("Scheds");

writer.WriteAttributeString("Qty", "5");

writer.WriteAttributeString("ProdId", "214");

writer.WriteAttributeString("Comments", "Need by 1/25");

writer.WriteEndElement();


// Write the close tag for the root element.

writer.WriteEndElement();

writer.Close(); 

這會(huì)產(chǎn)生以下輸出:


<ROOT>

  <Unit UnitName="Unit XYZ" />

  <Scheds Qty="5" ProdId="214" Comments="Need by 1/25" />

</ROOT>

因此,從您的示例來(lái)看,它將是:


foreach(PLYOrder p in t.Item2)

    writer.WriteStartElement("Scheds");

    writer.WriteAttributeString("Qty", p.Qty.ToString());

    writer.WriteAttributeString("ProdId", p.Product.Id.ToString());

    writer.WriteAttributeString("Comments", p.Comments);

    writer.WriteEndElement();

}


查看完整回答
反對(duì) 回復(fù) 2022-07-23
?
絕地?zé)o雙

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊

XML 中不能有重復(fù)的屬性。

您在示例輸出中沒(méi)有重復(fù)的屬性,您有重復(fù)的元素,這是允許的。將元素的開頭寫在Scheds元素處理的開頭和WriteEndElement()結(jié)尾,你應(yīng)該沒(méi)問(wèn)題。


查看完整回答
反對(duì) 回復(fù) 2022-07-23
  • 2 回答
  • 0 關(guān)注
  • 98 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)