2010-03-04 5 views
0

내가 만든 XML 파일은 다음과 같다 : 나는 요소를 암호화 할암호화 XML 요소

<Users> 
    <user> 
    <uin>"0"</uin> 
    <name>black</name> 
    <email>"[email protected]"</email> 
    <created>"3/02/2010"</created> 
    </user> 
    <user> 
    <uin>"123456780"</uin> 
    <name>sam</name> 
    <email>"[email protected]"</email> 
    <created>"3/02/2010"</created> 
    </user> 
    <user> 
    <uin>"123456799"</uin> 
    <name>kblack</name> 
    <email>"[email protected]"</email> 
    <created>"3/02/2010"</created> 
    </user> 
</Users> 

.

... 같은 코드를 사용하면 user.xml 파일의 첫 번째 UIN 만 암호화됩니다.

모든 UIN 요소를 어떻게 암호화 할 수 있습니까?

그러나 내가) (XMLDocument 클래스의 메서드를 SelectNodes를 사용하는 대신 추측 것입니다, 당신에게
Kanta

+0

표시된 코드는 아무 것도 암호화하지 않습니다. 요소를 선택하지만 암호화하지는 않습니다. 정말로 무엇을하고 싶습니까? 모든 요소를 ​​선택 하시겠습니까? 또는 무언가를 암호화하고 싶습니까? 또는 무엇을? – Cheeso

답변

0

당신의 XML이 제대로 인코딩되지 않은 것처럼 보이는, 그래서 문서 구조를 볼 수 없습니다 감사 SelectSingleNode()는 트릭을 수행합니다.

변환을 새로운 XML 문서로 출력해야하는 경우 Linq to XML 기능 중 일부를 살펴볼 수도 있습니다.

+0

SelectSingleNode() 대신 SelectNodes() 메서드를 사용해 보겠습니다. – Kanta

+0

{XmlDocument xmldoc = new XmlDocument(); {xmldoc.Load ("users.xml"); } catch (예외 ex) { Console.WriteLine (예 : 메시지); } TripleDESCryptoServiceProvider tDESkey = 새 tripleDESCryptoServiceProvider(); XmlDocument uinElem = xmldoc.SelectSingleNode ("users/user/uin"); EncryptedXml exml = new EncryptedXml (xmldoc); // 요소 대신 노드를 암호화하는 방법 ???? byte [] encrypteduin = exml.EncryptData (uinElem, tDESkey, false); EncryptedData ed = new EncryptedData(); cotinution – Kanta

+0

연속 ed.Type = EncryptedXml.XmlEncElementUrl; ed.EncryptionMethod = new EncryptionMethod (EncryptedXml.XmlEncTripleDESUrl); ed.CipherData = new CipherData(); ed.CipherData.CipherValue = encrypteduin; EncryptedXml.ReplaceElement (billinguin, ed, false); xmldoc.Save ("encrypteduser.xml"); XmlDocument 클래스의 selectNode()를 선택했을 때이 줄을 어떻게 변경해야하는지 모르겠 음 byte [] encrypteduin = exml.EncryptData (uinElem, tDESkey, false); EncryptData()는 내가 생각하는 노드를위한 요소가 아닙니다. http://www.devx.com/dotnet/Article/21564를 따르고 있습니다. – Kanta