我有一个看起来像这样的XLIFF文档:
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" srcLang="en-US" version="2.0" xml:space="preserve">
<file canResegment="no" id="Test_x0020_File">
<unit canResegment="no" id="6TkImOYdyao" type="DocumentState">
<originalData>
<data id="generic_1">
<Style FlowDirection="LeftToRight" LeadingMargin="0" TrailingMargin="0" FirstLineMargin="0" /></Style>
</data>
<data id="span_2">
<Style FontFamily="Arial" FontSize="21" FontIsBold="True" /></Style>
</data>
</originalData>
<segment canResegment="no">
<source>
<pc id="block_0">
<ph dataRef="generic_1" id="generic_1"/>
<pc dataRefStart="span_2" id="span_2">Correct!</pc>
</pc>
</source>
</segment>
</unit>
我正在尝试执行以下操作:
<pc dataRefStart="span_2" id="span_2">
我相信我已经用以下代码完成了#1:
XDocument doc = XDocument.Load("F:\\Projects\\Translate\\Test Data.xlf")
XNamespace df = doc.Root.Name.Namespace;
foreach (XElement segmentNode in doc.Descendants(df + "segment"))
{
//Find the Souce node and value
XElement sourceNodeValue = segmentNode.Element(df + "source");
var desiredElement = sourceNodeValue.FirstNode as XElement;
if (desiredElement != null)
{
segmentNode.Add(new XElement(df + "target", new XElement(desiredElement)));
}
它似乎可以正常工作,我相信我也可以在此代码上使用#2,因为我可以得到“正确!”:
string sourceTranslated = "";
sourceTranslated = sourceNodeValue.Value;
我在#3上失败了。我已经尝试了几件事,但是我能做的最好的就是获取值,但是然后我丢失了所有的子节点数据。它显示<pc id="block_0">Correcto!</pc>
应该看起来像这样:
<pc id="block_0">
<ph dataRef="generic_1" id="generic_1"/>
<pc dataRefStart="span_2" id="span_2">Correcto!</pc>
</pc>
感谢所有想法,并预先感谢您。