我有以下使用命名空間的XML結構:複製XML屬性使用LINQ
<office:document-content
<office:body>
<office:text text:use-soft-page-breaks="true">
<text:p text:style-name="Standard"><Text></text:p>
</office:text>
</office:body>
</office:document-content>
這來自於一個解壓的.odt作家文件的content.xml。現在我只想複製內部文本爲「<Text >」的屬性,並將副本替換爲新文本。我試過這個:
XmlFileOperations xml = new XmlFileOperations();
XDocument doc = XDocument.Load(Path.Combine(ConfigManager.InputPath, "File", "content.xml"));
var source = doc.Descendants()
.Where(e => e.Value == "<Text>")
.FirstOrDefault();
var target = new XElement(source);
target.Add(new XAttribute("Standard", source.Attribute(textLine)));
doc.Save(Path.Combine(ConfigManager.InputPath, "File", "content.xml"));
這是行不通的。它告訴我,我在文本中有一個不能用於名稱的標誌。在這種情況下,我可以如何複製我的屬性?
謝謝!
編輯:結果應該是
<office:document-content
<office:body>
<office:text text:use-soft-page-breaks="true">
<text:p text:style-name="Standard"><Text></text:p>
<text:p text:style-name="Standard">some new value</text:p>
</office:text>
</office:body>
</office:document-content>
不但。我需要複製該屬性,以便我有兩個相同的屬性,然後替換該副本的值。 – Canox
@Canox - 顯示所需結果 –
好的我編輯了我的問題 – Canox