开发者!!
我正在使用“C#in a Nutshell”学习LINQ to XML。 我想从XML文件中抓两行。
When I find myself in times of trouble
Mother Mary comes to me
文件是这样的;
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns:sdl="http://sdl.com/FileTypes/SdlXliff/1.0">
<file datatype="x-sdlfilterframework2">
<header>
<reference></reference>
</header>
<body>
<trans-unit translate="no" id="20873339caf8">
<source><x id="0"/></source>
</trans-unit>
<group>
<sdl:cxts><sdl:cxt id="1"/></sdl:cxts>
<trans-unit id="fb3052898e68">
<source>When I find myself in times of trouble</source>
</trans-unit>
</group>
<group>
<sdl:cxts><sdl:cxt id="1"/></sdl:cxts>
<trans-unit id="f3e2e9ca583c">
<source>Mother Mary comes to me</source>
</trans-unit>
</group>
</body>
</file>
</xliff>
实际上,我已经尝试了我可以用这本书做的各种代码。 但是,我失败了,我处于绝望状态。 请帮忙。
(还有更多的线路。随着歌曲的发展。模式非常严格。它带有组,组和组元素。)
此致
(编辑) 我的第一次尝试是这样的。 我必须练习元素的名称。 所以..
XElement ALL = XElement.Load( myPATH );
string RSLT = "";
int CNT = 0;
foreach( XElement x in ALL.Elements() )
{
CNT ++;
RSLT += CNT + ". " + x.Name + "\n";
}
MessageBox.Show( RSLT );
它只给我“1.档案”。 我期待着“文件头体转换单元组......”。
答案 0 :(得分:1)
我认为这应该可以解决问题:
var doc = XDocument.Load(path);
foreach(var srcElem in doc.Descendants("source").Skip(1))
{
Console.WriteLine((string)srcElem);
}
答案 1 :(得分:1)
试试这个:
HOST