>

XML 파일에 값을 저장하려고합니다. 아래 코드에서 "s.Attribute ("Value "). Value = value;break;"줄 실행되고 파일이 저장되지만 속성 값은 변경되지 않습니다

    public void CustomSettingXML_WriteValue(string key, string value)
    {
        XDocument doc = XDocument.Load(xmlFile);
        var elements = from x in XElement.Load(xmlFile).Elements("Item") select x;
        foreach (var s in elements)
        {
            if (s.Attribute("Text").Value == key)
            {
                s.Attribute("Value").Value = value; 
                doc.Save(@xmlFile);                    
               break;
            }
        }
    }


  • 답변 # 1

    실제로 달라질 수있는 두 가지가 있습니다.

    a) XElement.Load뿐만 아니라 XDocument.Load를 사용하여 Xml을 읽고 있습니다. 변경하는 동안 요소를 사용하고 있고 저장하는 동안 XDocument를 사용하고 있습니다.

    b) XML의 계층 구조는 (Items.Item)이므로 하위 요소를 사용하여 요소를 구문 분석하는 것이 좋습니다.

    전체 코드

    public void CustomSettingXML_WriteValue(string key, string value)
    {
        XDocument doc = XDocument.Load(xmlFile);
        var elements = from x in doc.Descendants("Item") select x;
        foreach (var s in elements)
        {
            if (s.Attribute("Text").Value == key)
            {
                s.Attribute("Value").Value = value; 
                doc.Save(@xmlFile);                    
               break;
            }
        }
    }
    
    

  • 이전 특정 패턴에 대한 양수 및 특수 기호 유효성 검사를위한 Java Regex
  • 다음 javascript - W3C Web Payments API를 통한 다자간 거래