[英]XElement parsing from XDocument, far below, repeated
我想要這樣的結果;
// Boo1
// Boo2
// Boo3
// ....
// ..
// .
從這里..
//<xliff xmlns:sdl="http://sdl.com/FileTypes/SdlXliff/1.0" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2" sdl: version="1.0">
// <sdl:seg-defs>
// <sdl:seg id="1" conf="Translated">
// <sdl:prev-origin origin="source">
// <sdl:prev-origin origin="source">
// <sdl:prev-origin origin="tm" percent="99">
// <sdl:prev-origin/>
// <sdl:value key="Hash">Foo1</sdl:value>
// <sdl:value key="Created">Boo1</sdl:value>
//...
//..
//.
我已經嘗試過了,但是失敗了。
string myResult = "";
XDocument myDoc = XDocument.Load(myPath);
XNamespace myNS = "http://sdl.com/FileTypes/SdlXliff/1.0";
foreach (var x in myDoc.Descendants(myNS + "seg-defs"))
myResult += x.Value.ToString() + "\n";
MessageBox.Show(myResult);
以下不是我想要的。
// Foo1Boo1
// Foo2Boo2
// ....
// ..
// .
請幫助。
謝謝
嘗試以下操作:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication1
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
XDocument doc = XDocument.Load(FILENAME);
List<XElement> segments = doc.Descendants().Where(x => x.Name.LocalName == "seg").ToList();
List<XElement> created = segments.Descendants().Where(x => (x.Name.LocalName == "value") && ((string)x.Attribute("key") == "Created")).ToList();
string results = string.Join("\n", created.Select(x => (string)x));
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.