私は村の馬鹿になりたくありませんが、XMLへのLinqの仕組みはわかりません。私はそれがSQLクエリを書くようになっているはずですが、私はそれの周りに私の頭を包むことはできません。 XML文字列からデータを取得しようとしています。私はこれを行うためにXMLDocumentsとXPathを使用したくありません。私はそれを行うことができました、私はそれをしました、私は私のアプリケーションをもう少しsnazzyにしようとしています。私が持っているXMLは少し面倒ですが、私はそれを解析するためにXpathを使用することができました。 LinqからXMLへの変換はずっと簡単です。次のXMLから、すべての要素をそこから取り出し、それらをPOCOオブジェクトにバインドする必要があります。たとえば、Patient.PatientIdオブジェクトをPatientID name属性を持つ要素ノードのvalue属性(4563)で設定する必要があります。今、私はXmlDocumentを使用してこれを行う方法を理解することができます。しかし、私はLINQ to XMLを使ってこれをどうやって行うのか理解できません。私に何ができる?私は、私にトラブルを与えているXMLの下で何をしようとしているのかの例を持っています。LINQ to XMLを使用してXMLから値を取得する
<?xml version="1.0" encoding="utf-8"?>
<dataTemplateSpecification id="id1" name="name1" >
<templates xmlns="">
<template>
<elements>
<element id="element0" name="PatientId" display="Patient ID" dataType="String" visable="true" readOnly="false" value="4563">
<mapping path="//Template/TemplateData/ACOData/PATIENT_ID" />
<validation>
<rules>
<rule id="r0" test="#element0.value == ''">
<fail>
<html>
<b>Patient ID is null, value must be present</b>
</html>
</fail>
</rule>
</rules>
</validation>
</element>
<element id="element1" name="PopulationPatientID" display="Population Patient ID" dataType="String" visable="true" readOnly="true" enc="2098" value="6407">
<mapping path="//Template/TemplateData/ACOData/POPULATION_PATIENT_ID" />
<!--Patient/compositeID[./idType='populationPatientID']/id-->
<validation>
<rules>
<rule id="r1" test="#element1.value == ''">
<fail>
<html>
<b>EMPI ID is null, value must be present</b>
</html>
</fail>
</rule>
</rules>
</validation>
</element>
ここでもまた、私が使用しようとしているLINQ to XMLがあります。
TemplateModel template = (TemplateModel)(from templates in elem.XPathSelectElements("//templates/template")
select new PatientACOData
{
PatientId = templates.Elements("//element/element[@name='PatientId']").Attributes("value").Value;
});
UPDATE >>>上の例クラス定義がわずかになった)SIMPLE ...ここでは、適切なクラス定義がある...
class PatientClass
{
public int Item_ID { get; set; }
public int PatientId { get; set; }
public int EMPIID { get; set; }
//public int PopulationPatientID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime DateOfBirth { get; set; }
public string Phone { get; set; }
public string HostpitalFinNumber { get; set; }
public DateTime AdminDate { get; set; }
public string MRNType { get; set; }
public string MRN { get; set; }
public string PatientRoomPhone { get; set; }
public DateTime DischargeDateTime { get; set; }
public string DischargeDisposition { get; set; }
public string DischargeTo { get; set; }
public char DischargeAdvocateCall { get; set; }
public string Payor { get; set; }
public char HomeHealthCareAccepted { get; set; }
public char SafeLandingAccepted { get; set; }
public string PCPName { get; set; }
public string PCPPhone { get; set; }
public string SpecialistName { get; set; }
public string SpecialistPhone { get; set; }
public DateTime PCPAppointmentDateTime { get; set; }
public string PCPAppointmentLocation { get; set; }
public DateTime SpecialistAppointmentDateTime { get; set; }
public string SpecialistAppointmentLocation { get; set; }
public char CompletedPathway { get; set; }
public string CompletedPathwayReason { get; set; }
public string Comment { get; set; }
}
これはまだ実際のですか?どの出力を期待していますか? – sll
あなたは何を意味するのか分かりません。私はそのXMLからデータオブジェクトにデータを引き出そうとしています。私はいくつかの異なる方法を試していますが、私にとってのハードルはXMLへのlinqの学習です – SoftwareSavant
"データオブジェクト"クラス定義を共有してください – sll