2010-07-26 23 views

Trả lời

7

Hóa Tôi chỉ có thể làm như sau:

Function GetSomeMoreXml() As XElement 
    Return <moreXml/> 
End Function 

Sub Main() 
    Dim myXml = <myXml> 
        <%= GetSomeMoreXml() %> 
       </myXml> 
End Sub 

Đó là khá gọn gàng. Nó cho phép tôi chia nhỏ các văn bản XML thành các phần dễ quản lý hơn.

-1

Nếu bạn thực sự cần phải làm điều đó, bạn có thể luôn luôn chỉ làm điều này:

<xml><%= myXElement.ToString() %></xml> 

Tôi không thể nghĩ ra bất kỳ ví dụ mà bạn sẽ muốn làm điều này mặc dù. Hãy cẩn thận để giải thích lý do tại sao bạn cần điều này? Nó sẽ phải viết ra chuỗi XElement, sau đó phân tích nó trước khi thêm nó trở lại vào mô hình đối tượng (tôi tưởng tượng đó là cách nó sẽ phải làm việc ít nhất).

+0

Tôi đang sử dụng XLinq và XML Literals để thực hiện chuyển đổi, giống như những gì bạn sẽ làm với XSLT. Tại thời điểm này, tôi có một khối văn bản XML dài khoảng 200 dòng thực hiện phép chuyển đổi. Các giá trị thuộc tính và văn bản được tạo ra với các khối '<% = myElement.ExtensionMethod()%>'. Tôi đã hy vọng để phá vỡ một số khối XML literals vào phương pháp riêng của họ và trả lại một XElement mà được nhúng trở lại vào khối chính của XML literals. – GiddyUpHorsey

+0

Giải pháp của bạn sẽ hoạt động, nhưng tôi không muốn chuyển đổi thành chuỗi và sau đó phân tích lại thành XElement. Tôi đã hy vọng có một cách tự nhiên hơn để làm điều đó. – GiddyUpHorsey

+0

Thay vì sử dụng tất cả các XML Literals, bạn có thể sử dụng kết hợp các constructor XDocument/XElement và các literals của bạn để tạo tài liệu gốc (nghĩ về cách C# -er sẽ phải làm như thế nào). Điều đó hoặc thêm XElements vào tài liệu của bạn qua LINQ-to-XML để chèn vào các khu vực mục tiêu cụ thể. – Ocelot20

Các vấn đề liên quan