我需要以某種方式處理/拼合傳入的xml。使用LINQ to XML平鋪xml文本和元素節點使用LINQ to XML
源XML:
<paragraph>
This <content styleCode="Underline">is</content>
<content styleCode="Italic">
<content styleCode="Underline">
<content styleCode="Bold">hello</content> world
</content> test</content> <content styleCode="Bold">example</content> here.
</paragraph>
目標XML:
<paragraph>
This <content styleCode="underline">is</content> <content styleCode="italic underline bold">hello</content> <content styleCode="italic underline">world</content> <content styleCode="italic">test</content> <content styleCode="Bold">example</content> here.
</paragraph>
我寧願使用LINQ到XML,但實現孩子文本節點旁邊content
元素節點讓所有不同的任務了。
另一個想法我是使用正則表達式在每個步驟,將緊隨其後的子節點開放<content>
前關閉</content>
innerxml結合起來,更新styleCode相應的屬性,然後並刪除舊節點。我的這個想法也沒有成功。
任何想法,解決方案都非常感謝。
除了結合和壓延content
節點,我也有小寫合併styleCode屬性,這是最容易的部分明顯:
XDocument xml = XDocument.Parse(sourceXml);
XName contentNode = XName.Get("content", "mynamespace");
var contentNodes = xml.Descendants(contentNode);
var renames = contentNodes.Where(x => x.Attribute("styleCode") != null);
foreach (XElement node in renames.ToArray())
{
node.Attribute("styleCode").Value = node.Attribute("styleCode").Value.ToLower();
}
您是否擁有對XML的控制權?你可以嘗試在'CDATA'標籤中包裝''中的文本,但是如果你需要一些體操操作''的子元素。 –
Tim
我不控制源XML,我可以將它包裝在CDATA中進行處理,但我正在尋找那個「體操」,雖然 –
裏面沒有其他標籤?只有「內容」,對吧? – SergeyS