2011-08-03 18 views
6

Có bất kỳ thủ thuật hoặc tiện ích nào có thể lấy tệp XML và chuyển tệp thành chuỗi dài được sử dụng bên trong mã C# không? Tôi không muốn tự sao chép và dán mọi dòng trong tệp XML. Tôi muốn mỗi dòng trong tập tin là một chuỗi trong mã C# của tôi và sau đó có một "+" ở cuối dòng.Lấy tệp XML và biến thành chuỗi dài để mã hóa C#

+1

Bạn đang cố gắng giải quyết vấn đề gì? Điều này nghe rất lạ. –

Trả lời

6

của nó không phải là một câu hỏi lập trình nhưng đây là những gì bạn đang tìm kiếm: http://inedo.com/downloads/smartpaster

+0

+1; nghe như một công cụ gọn gàng. Miễn phí/OSS quá :) –

+0

Plugin tuyệt vời !!! cảm ơn –

0

Có thể bạn không chỉ cần gửi đường dẫn của XML vào File.ReadAllText (đường dẫn)?

string xmlContent = System.IO.File.ReadAllText(pathToXML); 

Cùng thể được thực hiện để có được một mảng của chuỗi ...

string[] xmlContent = System.IO.File.ReadAllLines(pathToXML); 
3

Có một tập tin lớn nhúng vào mã # C của bạn như là một chuỗi chữ là một ý tưởng thực sự xấu. Đó là một ý tưởng đặc biệt tồi khi có các đường riêng biệt nối với toán tử + vì các chuỗi là bất biến và bạn sẽ tạo ra một chuỗi các đối tượng zillion ngay lập tức bị loại bỏ Chris chỉ ra rằng trình biên dịch sẽ thực hiện ghép nối theo thời gian.

Bạn chỉ có thể đọc được trong dòng XML như là một chuỗi với một dòng duy nhất:

string my_string = File.ReadAllText("xmlfile.xml"); 

Nếu bạn đang cố gắng để nhúng các tệp dữ liệu trong exe của dự án của bạn thì bạn có thể làm điều đó với tài nguyên của dự án .

+0

+1 cho chỉ ra chuỗi là bất biến và tạo đối tượng dư thừa. – Tim

+0

Nếu các chuỗi là chữ, sau đó sẽ không có nối vào thời gian chạy, nó sẽ xảy ra tại thời gian biên dịch. –

+0

"bạn đang tạo một chuỗi các đối tượng zillion ngay lập tức bị vứt bỏ": Không đúng đối với chuỗi ký tự. Trình biên dịch sẽ xử lý điều đó và chỉ đặt một chuỗi ký tự đã được ghép vào mã IL. –

6

Sử dụng soạn thảo của bạn

Bạn có thể dán XML vào một tập tin mới trong Visual Studio, và sử dụng biểu thức thông thường tìm kiếm và thay thế để sửa chữa lên tài liệu.

  • dấu ngoặc kép thoát và các nhân vật vấn đề khác gây
  • Nối " đến đầu và cuối dòng, và + đến cuối dòng.

Sau đó, bạn chỉ cần quay lại và thêm tên biến vào lúc bắt đầu, dấu chấm phẩy ở cuối và dán vào tài liệu mã nguồn của bạn.

Từ đó, bạn có thể tùy ý định dạng lại tài liệu mã nguồn (để thụt lề độc đáo) thông qua Chỉnh sửa -> Nâng cao -> Định dạng tài liệu.

Một tùy chọn khác ở đây là sử dụng các chuỗi ký tự đúng nguyên văn, bằng cách thêm @ trước báo giá đầu tiên. Sau đó, các dòng mới sẽ được duy trì và bạn có thể thoát khỏi các dấu ngoặc kép với "" thay vì \".

suy nghĩ lại vấn đề của bạn

file XML được lưu trữ trong chuỗi là hơi khó để chỉnh sửa, và một phần thất bại của các điểm của XML - trở thành con người có thể chỉnh sửa. Để giải quyết vấn đề này, bạn có thể xem xét việc thêm XML vào dự án của mình

  • Bạn có thể thêm nó vào dự án làm nội dung và đặt thuộc tính trên tệp để sao chép nó vào thư mục xây dựng.Sau đó, sử dụng các phương thức tải từ XmlDocument thích hợp hoặc chỉ đơn giản là File.ReadAllText.

Lợi thế (và khả năng bất lợi) ở đây là bạn có thể chỉnh sửa tệp sau khi biên dịch. Điểm bất lợi là bạn phải triển khai tập tin Xml cùng với assembly của bạn.

  • Bạn có thể thêm XML vào dự án của mình dưới dạng tài nguyên được nhúng. Sau đó, bạn có thể sử dụng Assembly.GetManifestResourceStream để lấy dữ liệu ra khỏi tệp.

Điểm bất lợi (và lợi thế) là bạn không thể chỉnh sửa tệp sau khi biên dịch. Ưu điểm là bạn không phải triển khai tệp Xml cùng với hội đồng của bạn.

Làm điều này giúp nhà phát triển chỉnh sửa tệp dễ dàng hơn nhiều nếu như Xml được nhồi nhét thành chuỗi ký tự.

0
string fileContent = File.ReadAllText(pathToFile)) 
         .Replace(Environment.NewLine, "+"); 
Các vấn đề liên quan