xmlデータは、3つのファイル(Database.xml、Participants.xml、およびConditionTokens.xml)に含まれています。 (私のXMLには、参加者や条件トークンが存在しない...私は、データベースファイルに参加し、条件トークンを配置するために外部エンティティを使用しようとしていますが、私はこのコードを実行すると...Visual Studio 2008で外部エンティティを使用してXMLファイルをマージする
string xmlPath = Environment.CurrentDirectory + @"\Data\Database.xml";
XElement database = XElement.Load(xmlPath);
"database"のHasElementsプロパティはfalseです)。 2つの子要素が必要です。私はVisual Studio(2008)内でエラー/警告を受け取りません。ライブスキーマの検証はうまくいくようですが、コードを実行するときに何か問題があります。
私が間違っていることを教えてもらえますか?
以下の3つのxmlファイルを貼り付けました。
ありがとうございました!
-Dan
Database.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE database [
<!ENTITY conditionTokens SYSTEM "ConditionTokens.xml">
<!ENTITY participants SYSTEM "Participants.xml">]>
<database
xmlns="experimentManager"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="experimentManager Database.xsd">
&conditionTokens;
&participants;
</database>
ConditionTokens.xml
<?xml version="1.0" encoding="utf-8" ?>
<conditionTokens>
<conditionToken>
<id>1</id>
<token>LargeToSmall</token>
</conditionToken>
<conditionToken>
<id>2</id>
<token>SmallToLarge</token>
</conditionToken>
</conditionTokens>
Participants.xml
<?xml version="1.0" encoding="utf-8" ?>
<participants>
<participant>
<id>1</id>
<conditionTokenId>1</conditionTokenId>
</participant>
<participant>
<id>2</id>
<conditionTokenId>2</conditionTokenId>
</participant>
</participants>
私は
XmlDocument xmlDatabase = new XmlDocument();
xmlDatabase.Load(databasePath);
XmlDocument xmlTokens = new XmlDocument();
xmlTokens.Load(tokensPath);
XmlDocument xmlParticipants = new XmlDocument();
xmlParticipants.Load(participantsPath);
はその後にimportNodeを使用してAppendNodeがお互いに続い添付する3つの文書をロードするためにXmlDocumentクラスを使用しているだろう
XDocumentではなくXElementに読み込む理由はありますか?それは何か変わるのだろうか? –
私は実際にXDocumentを最初に試しましたが、XElementがもっとうまくいくかどうかは分かりました。残念ながら、それは違いはありませんでした:( -Dan – devuxer