标签: xpathdocument

告诉StructureMap使用特定的构造函数

我有两个需要的服务XPathDocument.我希望能够定义XPathDocumnet在两个服务的配置中使用的命名实例.我也希望能够告诉StuctureMap使用哪个构造函数XPathDocument.当我尝试获取XPathDocument它的实例时告诉我它无法找到插件类型XmlReader.我想使用需要字符串uri的构造函数来获取xml文件.我似乎无法让这个工作.这是StructureMap配置代码.

public class Service1 : IService1 {
    public Service1(XPathDocument document) {}
}
public class Service2 : IService2 {
    public Service2(XPathDocument document) {}
}

public class Registry1 : Registry {
    ForRequestedType<IService1>().TheDefault.Is.OfConcreteType<Service1>()
        .CtorDependency<XPathDocument>()
        .Is(x => x.TheInstanceNamed("XPathDocument1"));
    ForRequestedType<IService2>().TheDefault.Is.OfConcreteType<Service2>()
        .CtorDependency<XPathDocument>()
        .Is(x => x.TheInstanceNamed("XPathDocument2"));

    ForRequestedType<XPathDocument>().AddInstances(x => {
        x.OfConcreteType<XPathDocument>()
            .WithCtorArg("uri").EqualToAppSetting("XmlFile1")
            .WithName("XPathDocument1");
        x.OfConcreteType<XPathDocument>()
            .WithCtorArg("uri").EqualToAppSetting("XmlFile2")
            .WithName("XPathDocument2");
    });
}
Run Code Online (Sandbox Code Playgroud)

c# structuremap xmlreader xpathdocument

38
推荐指数
1
解决办法
5257
查看次数

关于节点位置和属性值的XPath查询

有没有办法构建一个XPath查询,在某个位置找到一个节点并具有某个属性值?

请考虑以下示例xml:

<Item Type="Book">
<!--1st Param node in a Book item is always the autors last name-->
<Param Value="Updike" />
<!--2nd Param node in a Book item is always the autors first name-->
<Param Value="John" />
<!--3rd Param node in a Book item is always the book title-->
<Param Value="Toward the End of Time" /></Item>
Run Code Online (Sandbox Code Playgroud)

现在我可以构建一个查找以下内容的查询:

找到所有项目的节点类型,其中第2个"书" 帕拉姆节点都有一个 "约翰"的.所以我想找到作者名字的所有书籍都是"约翰".

请注意,我使用的是.NET XPathDocument.

xpath xpathdocument

0
推荐指数
1
解决办法
569
查看次数

解析XML文档

我正在尝试解析远程XML文档(来自Amazon AWS):

<ItemLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2009-03-31">
      <OperationRequest>
        <RequestId>011d32c5-4fab-4c7d-8785-ac48b9bda6da</RequestId>
        <Arguments>
          <Argument Name="Condition" Value="New"></Argument>
          <Argument Name="Operation" Value="ItemLookup"></Argument>
          <Argument Name="Service" Value="AWSECommerceService"></Argument>
          <Argument Name="Signature" Value="73l8oLJhITTsWtHxsdrS3BMKsdf01n37PE8u/XCbsJM="></Argument>
          <Argument Name="MerchantId" Value="Amazon"></Argument>
          <Argument Name="Version" Value="2009-03-31"></Argument>
          <Argument Name="ItemId" Value="603084260089"></Argument>
          <Argument Name="IdType" Value="UPC"></Argument>
          <Argument Name="AWSAccessKeyId" Value="[myAccessKey]"></Argument>
          <Argument Name="Timestamp" Value="2010-06-14T15:03:27Z"></Argument>
          <Argument Name="ResponseGroup" Value="OfferSummary,ItemAttributes"></Argument>
          <Argument Name="SearchIndex" Value="All"></Argument>
        </Arguments>
        <RequestProcessingTime>0.0318510000000000</RequestProcessingTime>
      </OperationRequest>
      <Items>
        <Request>
          <IsValid>True</IsValid>
          <ItemLookupRequest>
            <Condition>New</Condition>
            <DeliveryMethod>Ship</DeliveryMethod>
            <IdType>UPC</IdType>
            <MerchantId>Amazon</MerchantId>
            <OfferPage>1</OfferPage>
            <ItemId>603084260089</ItemId>
            <ResponseGroup>OfferSummary</ResponseGroup>
            <ResponseGroup>ItemAttributes</ResponseGroup>
            <ReviewPage>1</ReviewPage>
            <ReviewSort>-SubmissionDate</ReviewSort>
            <SearchIndex>All</SearchIndex>
            <VariationPage>All</VariationPage>
          </ItemLookupRequest>
        </Request>
        <Item>
          <ASIN>B0000UTUNI</ASIN>
          <DetailPageURL>http://www.amazon.com/Garnier-Fructis-Fortifying-Conditioner-Minute/dp/B0000UTUNI%3FSubscriptionId%3DAKIAIYPTKHCWTRWWPWBQ%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB0000UTUNI</DetailPageURL>
          <ItemLinks>
            <ItemLink>
              <Description>Technical Details</Description>
              <URL>http://www.amazon.com/Garnier-Fructis-Fortifying-Conditioner-Minute/dp/tech-data/B0000UTUNI%3FSubscriptionId%3DAKIAIYPTKHCWTRWWPWBQ%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB0000UTUNI</URL>
            </ItemLink>
            <ItemLink>
              <Description>Add To Baby Registry</Description>
              <URL>http://www.amazon.com/gp/registry/baby/add-item.html%3Fasin.0%3DB0000UTUNI%26SubscriptionId%3DAKIAIYPTKHCWTRWWPWBQ%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB0000UTUNI</URL>
            </ItemLink> …
Run Code Online (Sandbox Code Playgroud)

c# parsing xpathdocument

0
推荐指数
1
解决办法
1003
查看次数

标签 统计

xpathdocument ×3

c# ×2

parsing ×1

structuremap ×1

xmlreader ×1

xpath ×1