我有一个任务,我需要将xml转换为xhtml。
经过一些试验和错误后。即将使用c# 我还读了一些linq到xml的文章我在这里尝试做的是根据其属性
更改元素名称这是我的xml输入
<p><tada><Emphasis Type="Italic">q</Emphasis>-analogues of <Emphasis Type="Italic">n</Emphasis></tada>
<tada><todo><Emphasis Type="Italic">abc</Emphasis></todo></tada></p>
这是可能的输出
<p>
<tada>
<i>q</i>-analogues of <i>n</i></tada>
<tada>
<todo>
<i>abc</i>
</todo>
</tada>
</p>
到目前为止这是我的c#代码
XElement root = XElement.Load(@"C:\Users\Desktop\trial.xml");
IEnumerable<XElement> Emphasis =
from el in root.Descendants("Emphasis")
where (string)el.Attribute("Type") == "Italic"
select el;
foreach (XElement el in Emphasis)
{
el.Name = "i";
}
Console.WriteLine(root.ToString());
这是输出
<p>
<tada>
<i Type="Italic">q</i>-analogues of <i Type="Italic">n</i></tada>
<tada>
<todo>
<i Type="Italic">abc</i>
</todo>
</tada>
</p>
输出错误,因为它没有删除属性