일부 XML 파일에 노드 <disp-formula id="deqn*">
이 포함될 수 있으며이 노드들 각각에 \tag
이라는 문자열이 있습니다. 이제 키워드 \tag
의 수는 각 노드 <disp-formula id="deqn*">
에서 하나 이상일 수 있습니다.LINQ 2 XML을 사용하여 특정 문자열을 계산하여 파일의 xml 속성 값을 생성 하시겠습니까?
속성 값 id
을 1에서 생성하고 <disp-formula id="deqn*">
에 대해 +1로 증가시키고 \tag
수를 사용하여 찾았습니다.
샘플 데이터 :
<disp-formula id="deqn*">...\tag...</disp-formula>
<disp-formula id="deqn*">...\tag...\tag...\tag ...</disp-formula>
<disp-formula id="deqn*">...\tag ...</disp-formula>
<disp-formula id="deqn*">...\tag...\tag ...</disp-formula>
예상 수정 :
<disp-formula id="deqn1">...\tag...</disp-formula>
<disp-formula id="deqn2-4">...\tag...\tag...\tag ...</disp-formula>
<disp-formula id="deqn5">...\tag ...</disp-formula>
<disp-formula id="deqn6-7">...\tag...\tag ...</disp-formula>
나는 기본적으로 아래의 과정을 사용하여 특정 문자열 번호를 생성
:
string inputText = File.ReadAllText(@"C:\temp\sample.xml");
string findText = @"*";
int matchCount = inputText.Split(findText.ToCharArray()).Length - 1;
if (matchCount > 0)
{
for (int counter = 1; counter <= matchCount; counter++)
{
var regex = new Regex(Regex.Escape(findText));
inputText = regex.Replace(inputText, counter.ToString(), 1);
}
}
을하지만 할 수 없습니다 이 메서드에서 \tag
카운터를 추가하는 방법을 알아 내거나 LINQ2XML을 어떻게 사용할 수 있습니까? 이 일을 끝내기 위해서? 아무도 도와 줄 수 있습니까?
감사합니다, 당신은 라인'VAR matchCount = deqn.Value.Select ((C, I) => deqn.Value.Substring (I)) 설명 (분해) 할 수있다. 카운트 (하위 => sub.StartsWith ("\\ tag"));'? –
문자열 내에서 일치하는 문자열 카운트를 반환합니다. 루프의 모든 'disp-formula'요소에 대해 계산 된 '\ tag'카운트가 일치합니다. – lucky
알아요,하지만 어떻게 작동하는지 알고 싶었는데 ... 전에 LINQ에서 2D 변수'(c, i)'를 사용하지 않았습니다 ... –