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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

C#
Qyouu 2022-07-23 17:05:48
更新:解決問題的更新問題是元素而不是屬性,并添加了我的 XML 輸出我必須向應(yīng)用程序提供一些 XML 編碼的字符串(我不經(jīng)常使用標(biāo)記語言,并且對它們的細(xì)微差別沒有很多經(jīng)驗(yàn))。我需要發(fā)送的格式如下(我無法控制):<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>我試圖用它來寫這個,XML Writer但我遇到了屬性Scheds重復(fù)的問題。你可以在下面看到我在擺弄這個WriteString方法,但我相信我需要它作為一個屬性。我的代碼如下: //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個贊

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


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(); 

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


<ROOT>

  <Unit UnitName="Unit XYZ" />

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

</ROOT>

因此,從您的示例來看,它將是:


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();

}


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

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

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

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


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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