1

誰かが生のxml文字列をxml形式の方法でブラウザに表示するための最良の方法で私を助けてくれますか?

以下で作成したコードは何も表示せず、エラーが発生します。

  string xml = GetMessageXml(Request.QueryString["ID"].ToString());
            XDocument doc;
            using (StringReader s = new StringReader(xml.Substring(1)))
            {
                doc = XDocument.Load(s);
            }
            Response.ContentType = "text/xml";
            doc.Save(Response.Output);
            Response.Write(doc.ToString());

エラー:
XML解析エラー:ドキュメント要素の後にジャンク
'場所:H ttp:localhost / Accounts / EventLogMessageDetails.aspx?id = 178'
行番号83、列9:'

これはxml文字列です:

?<?xml version="1.0" encoding="utf-8"?>
<Order xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<OrderID>00000000-0000-0000-0000-000000000000</OrderID>
<IsOrderThrough>true</IsOrderThrough>
<VendorName>le</VendorName>
<OrderUniqueIdentifier>K03936</OrderUniqueIdentifier>
<SoldToCustomerID>A786</SoldToCustomerID>
<ShipToCustomerID>A786</ShipToCustomerID>
<OrderType>Standard</OrderType>
<CustomerPurchaseOrderNumber>PO0000336</CustomerPurchaseOrderNumber>
<ProjectName />
<EmailAddress>Nair@ecomkva.com</EmailAddress>
<DeliveryDate>2012-05-29T10:09:55.492696-05:00</DeliveryDate>
<ShipToAddress>
<AddressID>00075</AddressID>
<OrganizationName>SEBA-E</OrganizationName>
<AddressLine1>3700 STATE</AddressLine1>
<AddressLine2>Elk</AddressLine2>
<City>LA CROSSE</City>
<State>WI</State>
<ZipCode>54601</ZipCode>
<Country>US</Country>
<DaytimePhoneNumber>6782260680EXT</DaytimePhoneNumber>
</ShipToAddress>
<ShippingMethodName>FEDEX PRIORITY OVERNIGHT</ShippingMethodName>
<ShippingMethodID>F01</ShippingMethodID>
<MarketSegment>Commercial</MarketSegment>
<Comments>Elk^</Comments>
<LineItems>
<OrderLineItem>
<LineItemID>00000000-0000-0000-0000-000000000000</LineItemID>
<ProductID>Kbv</ProductID>
<Quantity>2</Quantity>
<ListPrice>10.67</ListPrice>
<PlacedPrice>3.84</PlacedPrice>
<DeliveryDate>2012-05-29T10:09:56.6957979-05:00</DeliveryDate>
<ShippingAddress>
<AddressID>Z00138075</AddressID>
<OrganizationName>moomoo</OrganizationName>
<AddressLine1>3700 STATE ROAD 16</AddressLine1>
<AddressLine2>moomoo</AddressLine2>
<City>LA CROSSE</City>
<State>WI</State>
<ZipCode>54601</ZipCode>
<Country>US</Country>
<DaytimePhoneNumber>675555550680EXT</DaytimePhoneNumber>
</ShippingAddress>
<ShippingMethodID>F01</ShippingMethodID>
<EmailAddress>IS@Cnj.com</EmailAddress>
<Comments />
<SequenceNumber>0</SequenceNumber>
</OrderLineItem>
</LineItems>
<BusinessUnit />
<FOBPoint>FB2</FOBPoint>
<Notify>TD</Notify>
<WorkOrder />
<SubmittedByUserName>TDAVIS</SubmittedByUserName>
<SpecialInstructions />
</Order>
4

2 に答える 2

3

これは私がすぐにやったことです。

Order.xmlをASP.NETプロジェクトに追加しました。

Showorder.aspxページを次のように作成し、<%と%>の間にC#コードを含めます。

<body>
 <form id="form1" runat="server">
  <div>
   <% 
     string xml = Request.QueryString["ID"].ToString();
        XDocument doc;
        doc = XDocument.Load(xml);
        Response.Write("<XMP>"+ doc.ToString()+"<\\XMP>");
        %>
    </div>
  </form>
</body>

その後、次のようにページを立ち上げました。

  http://localhost:52134/showxml.aspx?ID=http://localhost:52134/order.xml

私は以下のようにXMLを取得します:(注:必ずXMP .... / XMPを使用してください。そうしないと、ブラウザーにフォーマットされたXMLが表示されません)

ここに画像の説明を入力してください

コードを自由に試して、好きな方法で試してください。

于 2012-05-29T21:40:25.773 に答える
0

問題は、入力XMLがBADXMLであるためです。

あなたのエラーを見てください

Line Number 83, Column 9:</Order><Order xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

XMLには、行#83で定義されたXML名前空間があり、上部に「Order」要素を定義する必要があります。XMLをマージまたは作成したとき、それを失敗させたようです。

また、「生のxml文字列をxml形式でブラウザに表示する」とはどういう意味ですか?「生の文字列をxml形式でブラウザに表示する」という意味ですか?入力内容とブラウザでの表示方法を例を挙げて説明してください。

于 2012-05-29T20:35:20.377 に答える