C#の次のコードを使用してxslt変換を適用してXMLをJson変換に変換しようとしています。誰かが私の下に示唆することができます次のエラーを取得していますか? コード:outputDocument.Load(ストリーム)で次のエラーを取得xml to json xsltを使用して
Li = p.GetRegisterEntry();
var std = Li.Where(s => s.Id == id).FirstOrDefault();
string xml = std.contentxml.Value;
doc.LoadXml(xml);
string XSLT = std.TemplateXSLT.Value;
Xslt.LoadXml(XSLT);
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(Xslt.CreateNavigator());
// Transform our Xml-ified JSON
var outputDocument = new XmlDocument();
var stream = new MemoryStream();
xslt.Transform(doc, null, stream);
var sr = new StreamReader(stream);
var myStr = sr.ReadToEnd();
stream.Position = 0;
outputDocument.Load(stream);
// Convert back to JSON
string jsonText = JsonConvert.SerializeXmlNode(outputDocument);
午前。 System.Xml.dllで 'System.Xml.XmlException'型の例外が発生しましたが、ユーザーコード で処理されませんでした。追加情報:複数のルート要素があります。 2行目、2番目の位置。
これを解消するのに手伝ってください。ここ
は私のXMLとXSTLファイルです XML:<NewDataSet>
<RegisterEntry type="CM2" desc="Request to Change Name, Address and /or Singapore Address for Service for Agent, Applicant/Proprietor and/or other interested Parties">
<EventDate>23/09/2051</EventDate>
<DataItems>
<LodgementDate>26/08/2022</LodgementDate>
<DecisionDate>21/12/2031</DecisionDate>
<Particulars>
<Particular>
<TransactionType>Test Data</TransactionType>
<Details>Test Data</Details>
</Particular>
</Particulars>
</DataItems>
</RegisterEntry>
</NewDataSet>
XSLT:ティムが指摘したように
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" />
<xsl:template match="RegisterEntry">
<p> Test Data Parties<xsl:value-of select="DataItems/TransactionType" /></p>
<div id="content">
<table>
<tr>
<th valign="top" align="left"> Lodgement Date </th>
<td>
<xsl:value-of select="DataItems/LodgementDate" />
</td>
</tr>
<tr>
<th valign="top" align="left"> Decision Date </th>
<td>
<xsl:value-of select="DataItems/DecisionDate" />
</td>
</tr>
<xsl:for-each select="DataItems/Particulars/Particular">
<tr>
<th valign="top" align="left" style="width:50%"> Test Data <xsl:value-of select="TransactionType" /></th>
<td>
<xsl:value-of select="Details" />
</td>
</tr>
</xsl:for-each>
</table>
</div>
</xsl:template>
</xsl:stylesheet>
XMLドキュメントまたはXSLTドキュメントのいずれかが無効なXMLです。 – brijber
あなたの質問を編集して、例外を生成するXMLおよびXSLTトランスフォームのサンプルを含めることができますか?[mcve]?コードを自分で実行できるのであれば、私たちが助けてくれる可能性が高くなります。しかし、エラー*複数のルート要素があります。 2行目、位置2。*は、XMLドキュメントの1つに複数の[ルート要素](https://en.wikipedia.org/wiki/Root_element)があることを示します。 XML文書には、正確に1つのルート要素が必要です。 – dbc
@brijber私はそうではないと思うので、xmlは同じXSLTファイルを使ってHTMLに変換でき、htmlファイルは適切です。 – user3214322