나는XML 파일의 여러 노드에서 데이터를 가져 오는 방법은 C#을 사용하여 다른 텍스트 파일에서 사용합니까?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD with OASIS Tables v1.0 20120330//EN" "JATS-journalpublishing-oasis-article1.dtd">
<article article-type="proceedings" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:oasis="http://www.niso.org/standards/z39-96/ns/oasis-exchange/table">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id"/>
<journal-title-group>
<journal-title>Eleventh International Conference on Correlation Optics</journal-title>
</journal-title-group>
<issn pub-type="epub">0277-786X</issn>
<publisher>
<publisher-name>SPIE</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.236/12.205210</article-id>
<title-group>
<article-title>So you think you can dance?</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Cena</surname>
<given-names>John</given-names>
</name>
<xref ref-type="aff" rid="a1"><sup>a</sup></xref>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Pal</surname>
<given-names>G.S.</given-names>
</name>
<xref ref-type="aff" rid="a2"><sup>b</sup></xref>
</contrib>
<aff id="a1"><label><sup>a</sup></label>CNRS, France</aff>
<aff id="a2"><label><sup>b</sup></label>MIT, USA</aff>
</contrib-group>
</article-meta>
</front>
<body>
<sec id="S1">
<label>1.</label>
<p>Today is your lucky day</p>
</sec>
<sec id="S2">
<label>2.</label>
<p>Today is not so lucky</p>
</sec>
</body>
</article>
아래 내가 노드의 일부 (첫 번째 노드가 발견)의 내용을 가져 변수에 넣어 다음 정규식은 그들을 사용하여 대체 사용 묶는 것 같은입니다 샘플 XML 파일이 효율적인 방식으로 다른 TXT 파일. 좋은 방법이다 , 나는
XDocument doc=XDocument.Load(@"D:\MyFiles\1235-12-3053\230\124\124.xml",LoadOptions.PreserveWhitespace);
var s=from a in doc.Descendants("surname")
select a.First();
var l=from x in doc.Descendants("label")
select x.First();
... so on
File.WriteAllText(@"C:\Desktop\text.txt", Regex.Replace(File.ReadAllText(@"C:\Desktop\text.txt"), @"<a>[^<]+</a>", @"<a>s</a>"));
File.WriteAllText(@"C:\Desktop\text.txt", Regex.Replace(File.ReadAllText(@"C:\Desktop\text.txt"), @"<b>[^<]+</b>", @"<b>l</b>"));
... so on
같은 것을 시도하고 그러나 First()
방법은 오류를주고, 또한 WriteAllText
많은 시간을 사용하고 계십니까? 한번에 여러 번 교체 할 수 있습니까?
감사합니다. Tamal ... – Bumba