How to parse values if I have more than one tags, like in code above.
<formula1>
<team name="McLaren">
<driver>
<name>Abcd</name>
<points>112</points>
</driver>
<driver>
<name>Juan Pablo Montoya</name>
<points>60</points>
</driver>
</team>
</formula1>
<formula1>
<team name="McLaren">
<driver>
<name>Kimi Raikkonen</name>
<points>112</points>
</driver>
<driver>
<name>EFGH</name>
<points>60</points>
</driver>
</team>
</formula1>
I was able to print values between tags in first formula1 () with this code example:
ezxml_t f1 = ezxml_parse_file("formula1.xml");
printf("%s\n", ezxml_get(f1, "team", 0, "driver", 1, "name", -1)->txt);
ezxml_free(f1);
But don't know how to print values from second.
option 1. wrap
xml:
<root>
<formula1>
<team name="McLaren">
<driver>
<name>Abcd</name>
<points>112</points>
</driver>
<driver>
<name>Juan Pablo Montoya</name>
<points>60</points>
</driver>
</team>
</formula1>
<formula1>
<team name="McLaren">
<driver>
<name>Kimi Raikkonen</name>
<points>112</points>
</driver>
<driver>
<name>EFGH</name>
<points>60</points>
</driver>
</team>
</formula1>
</root>
code:
printf("%s\n", ezxml_get(f1, "formula1", 0, "team", 0, "driver", 1, "name", -1)->txt);
printf("%s\n", ezxml_get(f1, "formula1", 1, "team", 0, "driver", 0, "name", -1)->txt);
option 2. unify
xml:
<formula1>
<team name="McLaren">
<driver>
<name>Abcd</name>
<points>112</points>
</driver>
<driver>
<name>Juan Pablo Montoya</name>
<points>60</points>
</driver>
</team>
<team name="McLaren">
<driver>
<name>Kimi Raikkonen</name>
<points>112</points>
</driver>
<driver>
<name>EFGH</name>
<points>60</points>
</driver>
</team>
</formula1>
code:
printf("%s\n", ezxml_get(f1, "team", 0, "driver", 1, "name", -1)->txt);
printf("%s\n", ezxml_get(f1, "team", 1, "driver", 0, "name", -1)->txt);
Related
Request to share the xslt code for xml to json conversion.
we have a requirement to convert xml to json. then Trim the OuterElement and multiple square brackets [[
a) Trim the OuterElement
<ns0:PO_Message xmlns:ns0="http://test.com/Test">
b) The last 2 lineitems(ShipmentRefference, ShipGroupList) with 2 squarebrackets [[
Input xml file:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:PO_Message
xmlns:ns0="http://test.com/Test">
<domainId>MAIL</domainId>
<hubDomainId>MAIL</hubDomainId>
<isForReference>false</isForReference>
<status>releasedToVendor</status>
<docStatus>active</docStatus>
<editingStatus>confirmed</editingStatus>
<vpoNo>2826118</vpoNo>
<vpoDate>2021-02-23</vpoDate>
<instructions>METAL-No Size:1360600001-Article Number</instructions>
<businessRefNo>826118</businessRefNo>
<totalItems>1</totalItems>
<totalQty>160</totalQty>
<season>
<code>F21</code>
</season>
<custId>
<refNo>C000001</refNo>
</custId>
<vendorId>
<vendorCode>41843</vendorCode>
</vendorId>
<headerFactory>
<refNo>F000026</refNo>
<factCode>900088</factCode>
</headerFactory>
<vpoItemList>
<itemNo>19979-2021-0002-41843</itemNo>
<itemName>Base Camp 6 Footprint</itemName>
<customerItemNo>19979</customerItemNo>
<lotNo>1</lotNo>
<itemDesc>Base Camp 6 Footprint</itemDesc>
<shipQty>160</shipQty>
<planedQty>160</planedQty>
<qtyPerExportCarton>160</qtyPerExportCarton>
<qtyPerInnerCarton>160</qtyPerInnerCarton>
<factCode>900088</factCode>
<refNo>19979-2021-0002-41843-1</refNo>
<uom>
<code>PCS</code>
</uom>
<brand>
<code>MAIL</code>
</brand>
<itemId>
<itemNo>19979-2021-0002-41843</itemNo>
</itemId>
<portOfLanding>
<code>DLC Dalian</code>
</portOfLanding>
<vpoItemCsList>
<itemLotNo>19979-2021-0002-41843-Lot1</itemLotNo>
<vpoItemColorRef>METAL</vpoItemColorRef>
<vpoItemColorId>
<refNo>GUNMETAL</refNo>
<shortName>METAL</shortName>
</vpoItemColorId>
<vpoItemSizeId>
<refNo>No Size</refNo>
<displayName>No Size</displayName>
</vpoItemSizeId>
<itemId>
<iteamNo>19979-2021-0002-41843</iteamNo>
</itemId>
<lotNo>1</lotNo>
</vpoItemCsList>
<factId>
<factCode>900088</factCode>
</factId>
</vpoItemList>
<vpoShipDtlDtoGroupList>
<qty>160</qty>
<refNo>00001/19979-2021-0002-41843-1</refNo>
<vpoItemRef
xmlns:ns1="http://sap.com/xi/SAPGlobal/GDT">19979-2021-0002-41843-1
</vpoItemRef>
<vpoItemId>
<itemId>
<itemNo>19979-2021-0002-41843</itemNo>
</itemId>
</vpoItemId>
<vpoShipRef>00001</vpoShipRef>
<vpoShipId>
<shipmentNo>00001</shipmentNo>
<originalShipmentDate>2021-08-17</originalShipmentDate>
<shipmentDate>2021-08-23</shipmentDate>
<originalInDcDate>2021-09-15</originalInDcDate>
<inDcDate>2021-09-15</inDcDate>
<refNo>00001/19979-2021-0002-41843-1</refNo>
<shipMode>
<code>3</code>
</shipMode>
<finalDestination>
<code>0001</code>
</finalDestination>
<portOfLoading>
<code>DLC Dalian</code>
</portOfLoading>
</vpoShipId>
<shipMode>
<code>3</code>
</shipMode>
<portOfLoading>
<code>DLC Dalian</code>
</portOfLoading>
</vpoShipDtlDtoGroupList>
<vpoShipDtlCsGroupList>
<itemLotNo>19979-2021-0002-41843-Lot1</itemLotNo>
<shipmentNo>00001</shipmentNo>
<colorSizeQty>160</colorSizeQty>
<refNo>00001/19979-2021-0002-41843-1/GUNMETAL/No Size</refNo>
<vpoItemRef>19979-2021-0002-41843-1</vpoItemRef>
<vpoItemId>
<itemId>
<itemNo>19979-2021-0002-41843</itemNo>
</itemId>
</vpoItemId>
<vpoShipRef>00001/19979-2021-0002-41843-1</vpoShipRef>
<vpoItemColorRef>METAL</vpoItemColorRef>
<vpoItemSizeRef>No Size</vpoItemSizeRef>
<vpoShipDtlColorRef>1</vpoShipDtlColorRef>
<vpoShipDtlSizeRef>1</vpoShipDtlSizeRef>
</vpoShipDtlCsGroupList>
</ns0:PO_Message>
Expected Json Output File
{ "domainId" : "MAIL",
"hubDomainId" : "MAIL",
"isForReference" : "false",
"status" : "releasedToVendor",
"docStatus" : "active",
"editingStatus" : "confirmed",
"vpoNo" : "2118",
"vpoDate" : "2021-02-23",
"instructions" : "METAL-No Size:1360600001-Article Number",
"businessRefNo" : "2818",
"totalItems" : "1",
"totalQty" : "160",
"season" :
{ "code" : "F21" },
"custId" :
{ "refNo" : "C000001" },
"vendorId" :
{ "vendorCode" : "41843" },
"headerFactory" :
{ "refNo" : "F000026",
"factCode" : "900088" },
"vpoItemList" :
[
{ "itemNo" : "19979-2021-0002-41843",
"itemName" : "Base Camp 6 Footprint",
"customerItemNo" : "19979",
"lotNo" : "1",
"itemDesc" : "Base Camp 6 Footprint",
"shipQty" : "160",
"planedQty" : "160",
"qtyPerExportCarton" : "160",
"qtyPerInnerCarton" : "160",
"factCode" : "900088",
"refNo" : "19979-2021-0002-41843-1",
"uom" :
{ "code" : "PCS" },
"brand" :
{ "code" : "Wide" },
"itemId" :
{ "itemNo" : "19979-2021-0002-41843" },
"portOfLanding" :
{ "code" : "DLC Dalian" },
"vpoItemCsList" :
[
{ "itemLotNo" : "19979-2021-0002-41843-Lot1",
"vpoItemColorRef" : "METAL",
"vpoItemColorId" :
{ "refNo" : "GUNMETAL",
"shortName" : "METAL" },
"vpoItemSizeId" :
{ "refNo" : "No Size",
"displayName" : "No Size" },
"itemId" :
{ "iteamNo" : "19979-2021-0002-41843" },
"lotNo" : "1" } ],
"factId" :
{ "factCode" : "900088" } } ],
"vpoShipDtlDtoGroupList" :
[
[
{ "qty" : "160",
"refNo" : "00001\/19979-2021-0002-41843-1",
"vpoItemRef" : "19979-2021-0002-41843-1",
"vpoItemId" :
{ "itemId" :
{ "itemNo" : "19979-2021-0002-41843" } },
"vpoShipRef" : "00001",
"vpoShipId" :
{ "shipmentNo" : "00001",
"originalShipmentDate" : "2021-08-17",
"shipmentDate" : "2021-08-23",
"originalInDcDate" : "2021-09-15",
"inDcDate" : "2021-09-15",
"refNo" : "00001\/19979-2021-0002-41843-1",
"shipMode" :
{ "code" : "3" },
"finalDestination" :
{ "code" : "0001" },
"portOfLoading" :
{ "code" : "DLC Dalian" } } ,
"shipMode" :
{ "code" : "3" },
"portOfLoading" :
{ "code" : "DLC Dalian" } } ] ],
"vpoShipDtlCsGroupList" :
[
[
{ "itemLotNo" : "19979-2021-0002-41843-Lot1",
"shipmentNo" : "00001",
"colorSizeQty" : "160",
"refNo" : "00001\/19979-2021-0002-41843-1\/GUNMETAL\/No Size",
"vpoItemRef" : "19979-2021-0002-41843-1",
"vpoItemId" :
{ "itemId" :
{ "itemNo" : "19979-2021-0002-41843" } },
"vpoShipRef" : "00001\/19979-2021-0002-41843-1",
"vpoItemColorRef" : "METAL",
"vpoItemSizeRef" : "No Size",
"vpoShipDtlColorRef" : "1",
"vpoShipDtlSizeRef" : "1" } ] ] }
XLST Code:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="3.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.w3.org/2005/xpath-functions"
exclude-result-prefixes="#all"
expand-text="yes">
<xsl:output method="text"/>
<xsl:template match="/*" priority="5">
<xsl:variable name="json-xml">
<map>
<xsl:apply-templates/>
</map>
</xsl:variable>
<xsl:value-of select="xml-to-json($json-xml, map { 'indent' : true() })"/>
</xsl:template>
<xsl:template match="*[not(*)]">
<string key="{local-name()}">{.}</string>
</xsl:template>
<xsl:template match="*[(*) and . castable as xs:double]">
<number key="{local-name()}">{.}</number>
</xsl:template>
<xsl:template match="*[* and not(*[6])]">
<map key="{local-name()}">
<xsl:apply-templates/>
</map>
</xsl:template>
<xsl:template match="*[* and *[6]]">
<array key="{local-name()}">
<map>
<xsl:apply-templates/>
</map>
</array>
</xsl:template>
<xsl:template match="vpoShipDtlDtoGroupList | vpoShipDtlCsGroupList" priority="10">
<array key="{local-name()}">
<array>
<map>
<xsl:apply-templates/>
</map>
</array>
</array>
</xsl:template>
</xsl:stylesheet>
Thanks,
Ravi
That is basically a two step transformation from your XML to the XML format the xml-to-json function expects. You would use
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="3.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.w3.org/2005/xpath-functions"
exclude-result-prefixes="#all"
expand-text="yes">
<xsl:output method="xml" indent="yes"/>
<xsl:mode on-no-match="shallow-skip"/>
<xsl:template match="/*">
<map>
<xsl:apply-templates/>
</map>
</xsl:template>
<xsl:template match="*[not(*)]">
<string key="{local-name()}">{.}</string>
</xsl:template>
<xsl:template match="*[not(*) and . castable as xs:double]">
<number key="{local-name()}">{.}</number>
</xsl:template>
<xsl:template match="*[* and not(*[2])]">
<map key="{local-name()}">
<xsl:apply-templates/>
</map>
</xsl:template>
<xsl:template match="*[* and *[2]]">
<array key="{local-name()}">
<map>
<xsl:apply-templates/>
</map>
</array>
</xsl:template>
<xsl:template match="ShipGroupList | ShipmentRefference" priority="10">
<array key="{local-name()}">
<array>
<map>
<xsl:apply-templates/>
</map>
</array>
</array>
</xsl:template>
<xsl:template match="/" name="xsl:initial-template">
<xsl:next-match/>
<xsl:comment xmlns:saxon="http://saxon.sf.net/">Run with {system-property('xsl:product-name')} {system-property('xsl:product-version')} {system-property('Q{http://saxon.sf.net/}platform')}</xsl:comment>
</xsl:template>
</xsl:stylesheet>
for the first step which gives (https://xsltfiddle.liberty-development.net/asoTJB/0) e.g.
<?xml version="1.0" encoding="UTF-8"?>
<array xmlns="http://www.w3.org/2005/xpath-functions" key="PO_Message">
<map>
<string key="domainId">Mail</string>
<string key="hubId">Mail</string>
<array key="MailItemList">
<map>
<string key="itemNo">2021-0002</string>
<string key="itemName">Camp</string>
<map key="factId">
<number key="factCode">188</number>
</map>
</map>
</array>
<array key="ShipGroupList">
<array>
<map>
<number key="GroupList1">123</number>
<number key="qty">160</number>
<map key="shipMode">
<number key="code">3</number>
</map>
</map>
</array>
</array>
<array key="ShipmentRefference">
<array>
<map>
<number key="itemLotNo">199791</number>
<number key="shipmentNo">1</number>
</map>
</array>
</array>
</map>
</array>
<!--Run with SAXON HE 9.8.0.15 -->
then a complete stylesheet would use the first step in a variable and apply the xml-to-json function to the variable:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="3.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.w3.org/2005/xpath-functions"
exclude-result-prefixes="#all"
expand-text="yes">
<xsl:output method="text"/>
<xsl:template match="/*" priority="5">
<xsl:variable name="json-xml">
<map>
<xsl:apply-templates/>
</map>
</xsl:variable>
<xsl:value-of select="xml-to-json($json-xml, map { 'indent' : true() })"/>
</xsl:template>
<xsl:template match="*[not(*)]">
<string key="{local-name()}">{.}</string>
</xsl:template>
<xsl:template match="*[not(*) and . castable as xs:double]">
<number key="{local-name()}">{.}</number>
</xsl:template>
<xsl:template match="*[* and not(*[2])]">
<map key="{local-name()}">
<xsl:apply-templates/>
</map>
</xsl:template>
<xsl:template match="*[* and *[2]]">
<array key="{local-name()}">
<map>
<xsl:apply-templates/>
</map>
</array>
</xsl:template>
<xsl:template match="ShipGroupList | ShipmentRefference" priority="10">
<array key="{local-name()}">
<array>
<map>
<xsl:apply-templates/>
</map>
</array>
</array>
</xsl:template>
</xsl:stylesheet>
https://xsltfiddle.liberty-development.net/asoTJB/1
I have a requirement to convert xml to json. few elements required an array and for few elements it is not required.The Initial root tag also needs to be remove. Below is my xml.
<?xml version="1.0" encoding="UTF-8" ?>
<ns1:Account_Resp xmlns:ns1="test:test:services">
<row>
<bank>
<bank>1234</bank>
<bankShortName>customer</bankShortName>
</bank>
<card>
<cardLastFour>000</cardLastFour>
<cardType>00n</cardType>
</card>
<address>
<city>CA</city>
<country>CA</country>
</address>
<version>
<symbol>20200702111359</symbol>
</version>
<locks>
<lockType>06</lockType>
<lockValidFrom>00</lockValidFrom>
<lockValidTo>9</lockValidTo>
</locks>
<locks>
<lockType>0</lockType>
<lockValidFrom>000</lockValidFrom>
<lockValidTo>99</lockValidTo>
</locks>
<infoStore>
<informationCategoryCode></informationCategoryCode>
<infoDateFrom></infoDateFrom>
</infoStore>
<changedTime>111359</changedTime>
<standAloneFlag>false</standAloneFlag>
</row>
<row>
<bank>
<bank>1234</bank>
<bankShortName>customer</bankShortName>
</bank>
<card>
<cardLastFour>000</cardLastFour>
<cardType>00n</cardType>
</card>
<address>
<city>CA</city>
<country>CA</country>
</address>
<version>
<symbol>20200702111359</symbol>
</version>
<locks>
<lockType>06</lockType>
<lockValidFrom>00</lockValidFrom>
<lockValidTo>9</lockValidTo>
</locks>
<locks>
<lockType>0</lockType>
<lockValidFrom>000</lockValidFrom>
<lockValidTo>99</lockValidTo>
</locks>
<infoStore>
<informationCategoryCode></informationCategoryCode>
<infoDateFrom></infoDateFrom>
</infoStore>
<changedTime>111359</changedTime>
<standAloneFlag>false</standAloneFlag>
</row>
</ns1:Account_Resp>
For the above xml i have used the below XSLT code to convert into json.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://use your namespace">
<xsl:output method="text"/>
<xsl:template match="/ns0:Account_Resp">{
<xsl:apply-templates select="*"/> }
</xsl:template>
<!-- Object or Element Property-->
<xsl:template match="*">
"<xsl:value-of select="name()"/>" : <xsl:call-template name="Properties"/>
</xsl:template>
<!-- Array Element -->
<xsl:template match="*" mode="ArrayElement">
<xsl:call-template name="Properties"/>
</xsl:template>
<!-- Object Properties -->
<xsl:template name="Properties">
<xsl:variable name="childName" select="name(*[1])"/>
<xsl:choose>
<xsl:when test="not(*|#*)">"<xsl:value-of select="."/>"</xsl:when>
<xsl:when test="count(*[name()=$childName]) > 1">{ "<xsl:value-of select="$childName"/>" :[<xsl:apply-templates select="*" mode="ArrayElement"/>] }</xsl:when>
<xsl:otherwise>{
<xsl:apply-templates select="#*"/>
<xsl:apply-templates select="*"/>
}</xsl:otherwise>
</xsl:choose>
<xsl:if test="following-sibling::*">,</xsl:if>
</xsl:template>
<!-- Attribute Property -->
<xsl:template match="#*">"<xsl:value-of select="name()"/>" : "<xsl:value-of select="."/>",
</xsl:template>
</xsl:stylesheet>
I am expecting below output, but with above code it is not giving the correct output.
[
{
"bank": {
"bank": "1234",
"bankShortName": "customer"
},
"card": {
"cardLastFour": "000",
"cardType": "00n"
},
"address": {
"city": "Monicashire",
"country": "CA"
},
"version": {
"symbol": "2345"
},
"locks": [
{
"lockType": "06",
"lockValidFrom": "00",
"lockValidTo": "9"
},
{
"lockType": "06",
"lockValidFrom": "000",
"lockValidTo": "999"
}
],
"infoStore": {
"informationCategoryCode": "",
"infoDateFrom": "",
"infoDateTo": ""
},
"changedTime": "111359",
"standAloneFlag": "false"
},
{
"bank": {
"bank": "1234",
"bankShortName": "customer"
},
"card": {
"cardLastFour": "000",
"cardType": "00n",
},
"address": {
"city": "ca",
"country": "CA",
},
"version": {
"symbol": "156"
},
"locks": [
{
"lockType": "06",
"lockValidFrom": "00010101",
"lockValidTo": "99991231"
},
{
"lockType": "06",
"lockValidFrom": "00010101",
"lockValidTo": "99991231"
}
],
"infoStore":[ {
"informationCategoryCode": "",
"infoDateFrom": "",
"infoDateTo": ""
}
],
"changedTime": "111359",
"standAloneFlag": false
}
]
Please note that if the row is single also it should show the array symbol. locks and infostore nodes also should be always array even if it single in row.All fields should be in string and standAloneFlag field should be with out quotes.
Could you please help me what corrections i have do to for the correct output.
I have to show some values from a Json in the {{}} but I see the values just are shown in console and right inside app.controller. Its just going off this app.controller and the values are not shown.
These are some parts of the code:
var app = angular.module('confusionApp',[]);
app.controller('dishDetailController', function() {
var dish={
name:'Uthapizza',
image: 'images/uthapizza.png',
category: 'mains',
label:'Hot',
price:'4.99',
description:'A unique combination of Indian Uthappam (pancake) and Italian pizza, topped with Cerignola olives, ripe vine cherry tomatoes, Vidalia onion, Guntur chillies and Buffalo Paneer.',
comments: [
{
rating:5,
comment:"Imagine all the eatables, living in conFusion!",
author:"John Lemon",
date:"2012-10-16T17:57:28.556094Z"
},
{
rating:4,
comment....
And finishing:
...date:"2013-12-02T17:57:28.556094Z"
},
{
rating:2,
comment:"It's your birthday, we're gonna party!",
author:"25 Cent",
date:"2011-12-02T17:57:28.556094Z"
}
]
};
this.dish = dish;
console.log(dish["name"]); console.log(dish.image); console.log(dish.category);
console.log(dish.label); console.log(dish.price); console.log(dish.description);
console.log("----------------------------------------------------------");
console.log(dish.comments[0]["rating"]); console.log(dish.comments[0]["comment"]);
console.log(dish.comments[0]["author"]); console.log(dish.comments[0]["date"]);
});
console.log("Hey hey hey!");//This shown perfectly in console
console.log(dish.name);//but this is showing... ReferenceError: dish is not defined
And on the view it is not working too...Not is displayed, just blank.
....<img class="media-object img-thumbnail"
ng-src={{image}} alt="Uthappizza">
</a>
</div>
<div class="media-body">
<h2 class="media-heading">{{dish.name}}
<span class="label label-danger">{{dish.label}}</span>....
The ngApp is in html tag:
<html lang="en" ng-app="confusionApp">
And ngController is placed in a div that holds the entire view:
<div class="container" ng-controller="dishDetailController">
So...what's wrong?
You are using Controller as.
Just convert your
<div class="container" ng-controller="dishDetailController">
to
<div class="container" ng-controller="dishDetailController as ctrl">
and access value via ctrl
like this
{{ctrl.dish.name}}
use controller as in the html like this
<div ng-app="confusionApp" ng-controller="dishDetailController as vm">
<img class="media-object img-thumbnail"
ng-src={{vm.image}} alt="Uthappizza">
<div class="media-body">
<h2 class="media-heading">{{vm.dish.name}}
<span class="label label-danger">{{vm.dish.label}}</span>
</div>
var app = angular.module('confusionApp',[]);
app.controller('dishDetailController', function() {
var dish={
name:'Uthapizza',
image: 'images/uthapizza.png',
category: 'mains',
label:'Hot',
price:'4.99',
description:'A unique combination of Indian Uthappam (pancake) and Italian pizza, topped with Cerignola olives, ripe vine cherry tomatoes, Vidalia onion, Guntur chillies and Buffalo Paneer.',
comments: [
{
rating:5,
comment:"Imagine all the eatables, living in conFusion!",
author:"John Lemon",
date:"2012-10-16T17:57:28.556094Z"
},
{
rating:2,
comment:"It's your birthday, we're gonna party!",
author:"25 Cent",
date:"2011-12-02T17:57:28.556094Z"
}
]
};
this.dish = dish;
console.log(dish["name"]); console.log(dish.image); console.log(dish.category);
console.log(dish.label); console.log(dish.price); console.log(dish.description);
console.log("----------------------------------------------------------");
console.log(dish.comments[0]["rating"]); console.log(dish.comments[0]["comment"]);
console.log(dish.comments[0]["author"]); console.log(dish.comments[0]["date"]);
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="confusionApp" ng-controller="dishDetailController as vm">
<img class="media-object img-thumbnail"
ng-src={{vm.image}} alt="Uthappizza">
<div class="media-body">
<h2 class="media-heading">{{vm.dish.name}}
<span class="label label-danger">{{vm.dish.label}}</span>
</div>
body: Object
und: Array[1]
0: Object
format: "full_html"
safe_summary: ""
safe_value: "<p dir="rtl" style="text-align: justify;">اگر دوست دارید قدرت دویدنتان زیاد شود و بیشتر بدوید و آسیب های ناشی از دویدن را هم نداشه باشید توصیه های زیر را بخوانید تا موفقیت خوبی هنگام دویدن نصیبتان شود.<br /><strong>1- هر روز بدوید</strong><br />تداوم، کلید موفقیت در برنامه است. اگر هر روز بدوید، توانایی بدن برای سوزاندن چربی هم بیشتر می شود.<br /><br /><strong>2- لباس مناسب برای دویدن بپوشید</strong><br />بلوز، شلوار و کفش ورزشی مناسب برای دویدن بپوشید. این کار هم بدن شما را در بهترین فرم و حالت نگه می دارد و هم انگیزه بخش بوده و یک وسیله تشویقی برای دویدن محسوب می شود.<br /><br /><strong>3- انعطاف پذیری خودتون را افزایش بدهید</strong><br />از تجهیزات ورزشی مناسب برای افزایش انعطاف پذیری بدن استفاده کنید تا در زمان دویدن، توانایی و ظرفیت بیشتری داشته باشید. مثلاً می توانید سه جلسه در هفته از بالش پیلاتس استفاده کنید. استفاده از این وسیله، احتمال جراحت هنگام دویدن را کمتر کرده و اثرات مفیدتری نسبت به حرکات کششی ایستا دارد<br /> <br /><strong>4- برای دویدن دلیل داشته باشید</strong><br />به یاد داشته باشید که شما از فرصت فوق العاده ای در زندگی بهرمند هستید که شاید خیلی از افراد دیگر، این فرصت رو نداشته باشند و به هر دلیلی نتوانند بدوند. این یک دلیل فوق العاده مهم و ارزشمند است. این فرصت را که به طور طبیعی در اختیار شما قرار داده شده است، هدر ندهید.<br /><br /><strong>5- هنگام دویدن لباس های خیلی گرم یا زیاد نپوشید</strong><br />همیشه طوری لباس بپوشید که انگار دمای محیط چند درجه گرم تر از میزان واقعی آن است. چون وقتی که شروع به دویدن می کنید، بدن به طور خود به خود گرم می شود و اگر لباس زیادی پوشیده باشید، احساس گرمای طاقت فرسایی خواهید کرد.<br />هرچه انعطاف بدن بیشتر باشد احتمال جراحت هنگام دویدن کمتر است<br /><br /><strong>6- با دونده های دیگر خودتان را مقایسه نکنید</strong><br />خودتان را با خودتان مقایسه کنید نه با بقیه دونده ها. مسلماً همیشه فرد یا افرادی وجود دارند که از شما سریع تر می دوند و ورزشکار تر به نظر می رسند. بر روی پیشرفت خودتان تمرکز کنید و افکار منفی و دلسرد کننده را از خودتان دور کنید.<br /><br /><strong>7- برای دویدن از سطوح شیب دار استفاده نکنید</strong><br />هیچ وقت در سراشیب تپه ها ندوید. نیروی بسیار شدید که با دویدن در سراشیب به زانو ها وارد می شود، برای زانوها مضر است.<br /><br /><strong>8- هر روز به خودتان فشار نیاورید</strong><br />برای تقویت بدن، باید به آن فرصت بدهید تا به بازسازی خود بپردازد. پس نباید هر روز با شدت خیلی زیاد ورزش کنید. بعضی از روزهای هفته به ورزش با شدت کمتر بپردازید.<br /><br /><strong>9- به صورت گروهی بدوید</strong><br />دویدن حتی به صورت انفرادی هم لذتبخش است اما اگر فرد اجتماعی هستید و دوستانی دارید که به شما انگیزه می دهند، بهتر است که با هم به دویدن بپردازید.<br /><br /><strong>10- هنگام دویدن یک هدف مشخص تعیین کنید</strong><br />مثلاً با خودتان قرار بگذارید که یک ربع بدوید یا مثلاً چهار کیلومتر بدوید. سعی کنید که به هدفی که تعیین کرده اید، برسید.</p>↵"
summary: ""
value: "<p dir="rtl" style="text-align: justify;">اگر دوست دارید قدرت دویدنتان زیاد شود و بیشتر بدوید و آسیب های ناشی از دویدن را هم نداشه باشید توصیه های زیر را بخوانید تا موفقیت خوبی هنگام دویدن نصیبتان شود.<br><strong>1- هر روز بدوید</strong><br>تداوم، کلید موفقیت در برنامه است. اگر هر روز بدوید، توانایی بدن برای سوزاندن چربی هم بیشتر می شود.<br><br><strong>2- لباس مناسب برای دویدن بپوشید</strong><br>بلوز، شلوار و کفش ورزشی مناسب برای دویدن بپوشید. این کار هم بدن شما را در بهترین فرم و حالت نگه می دارد و هم انگیزه بخش بوده و یک وسیله تشویقی برای دویدن محسوب می شود.<br><br><strong>3- انعطاف پذیری خودتون را افزایش بدهید</strong><br>از تجهیزات ورزشی مناسب برای افزایش انعطاف پذیری بدن استفاده کنید تا در زمان دویدن، توانایی و ظرفیت بیشتری داشته باشید. مثلاً می توانید سه جلسه در هفته از بالش پیلاتس استفاده کنید. استفاده از این وسیله، احتمال جراحت هنگام دویدن را کمتر کرده و اثرات مفیدتری نسبت به حرکات کششی ایستا دارد<br> <br><strong>4- برای دویدن دلیل داشته باشید</strong><br>به یاد داشته باشید که شما از فرصت فوق العاده ای در زندگی بهرمند هستید که شاید خیلی از افراد دیگر، این فرصت رو نداشته باشند و به هر دلیلی نتوانند بدوند. این یک دلیل فوق العاده مهم و ارزشمند است. این فرصت را که به طور طبیعی در اختیار شما قرار داده شده است، هدر ندهید.<br><br><strong>5- هنگام دویدن لباس های خیلی گرم یا زیاد نپوشید</strong><br>همیشه طوری لباس بپوشید که انگار دمای محیط چند درجه گرم تر از میزان واقعی آن است. چون وقتی که شروع به دویدن می کنید، بدن به طور خود به خود گرم می شود و اگر لباس زیادی پوشیده باشید، احساس گرمای طاقت فرسایی خواهید کرد.<br>هرچه انعطاف بدن بیشتر باشد احتمال جراحت هنگام دویدن کمتر است<br><br><strong>6- با دونده های دیگر خودتان را مقایسه نکنید</strong><br>خودتان را با خودتان مقایسه کنید نه با بقیه دونده ها. مسلماً همیشه فرد یا افرادی وجود دارند که از شما سریع تر می دوند و ورزشکار تر به نظر می رسند. بر روی پیشرفت خودتان تمرکز کنید و افکار منفی و دلسرد کننده را از خودتان دور کنید.<br><br><strong>7- برای دویدن از سطوح شیب دار استفاده نکنید</strong><br>هیچ وقت در سراشیب تپه ها ندوید. نیروی بسیار شدید که با دویدن در سراشیب به زانو ها وارد می شود، برای زانوها مضر است.<br><br><strong>8- هر روز به خودتان فشار نیاورید</strong><br>برای تقویت بدن، باید به آن فرصت بدهید تا به بازسازی خود بپردازد. پس نباید هر روز با شدت خیلی زیاد ورزش کنید. بعضی از روزهای هفته به ورزش با شدت کمتر بپردازید.<br><br><strong>9- به صورت گروهی بدوید</strong><br>دویدن حتی به صورت انفرادی هم لذتبخش است اما اگر فرد اجتماعی هستید و دوستانی دارید که به شما انگیزه می دهند، بهتر است که با هم به دویدن بپردازید.<br><br><strong>10- هنگام دویدن یک هدف مشخص تعیین کنید</strong><br>مثلاً با خودتان قرار بگذارید که یک ربع بدوید یا مثلاً چهار کیلومتر بدوید. سعی کنید که به هدفی که تعیین کرده اید، برسید.</p>"
changed: "1440225054"
cid: "0"
comment: "2"
comment_count: "0"
created: "1440225054"
data: "b:0;"
field_external_link: Array[0]
field_image: Object
field_main_category_field: Object
field_show_slideshow: Object
title_original: "10 نکته برای بهتر دویدن"
This is my json from console that i copy here . This json is comming from Drupal that i want to show some data in ng-repeat .
when i add this to my html :
<div ng-repeat="data in innerData">
{{data.title_original}}
</div>
I'm assuming data is the variable holding the json. If that's true, I don't see any field title_original in it. Therefor, your code won't output anything.
Also, I see your json has some html in it. If you're sure the code is safe and can't inject unwanted tags (such as <script></script>), you should use the directive ng-bind-html to show that content and actually interpret it as HTML. This uses the sanitize module from angular.
See: https://docs.angularjs.org/api/ng/directive/ngBindHtml
I need to set width of the autocomplete input in the Angular Kendo.
How can i do it programatically please?
Thanks for any help.
Setting it with an initial value, you should use style="width: 200px;".
Example:
<input kendo-auto-complete="my_autocomplete" ng-model="country" k-data-source="countryNames" style="width: 200px" />
If then you need to modify it, you should change the width via css method for wrapper element.
Example
$scope.my_autocomplete.wrapper.css("width", "300px");
angular.module("KendoDemos", [ "kendo.directives" ])
.controller("MyCtrl", function($scope){
$scope.countryNames = [
"Albania",
"Andorra",
"Armenia",
"Austria",
"Azerbaijan",
"Belarus",
"Belgium",
"Bosnia & Herzegovina",
"Bulgaria",
"Croatia",
"Cyprus",
"Czech Republic",
"Denmark",
"Estonia",
"Finland",
"France",
"Georgia",
"Germany",
"Greece",
"Hungary",
"Iceland",
"Ireland",
"Italy",
"Kosovo",
"Latvia",
"Liechtenstein",
"Lithuania",
"Luxembourg",
"Macedonia",
"Malta",
"Moldova",
"Monaco",
"Montenegro",
"Netherlands",
"Norway",
"Poland",
"Portugal",
"Romania",
"Russia",
"San Marino",
"Serbia",
"Slovakia",
"Slovenia",
"Spain",
"Sweden",
"Switzerland",
"Turkey",
"Ukraine",
"United Kingdom",
"Vatican City"
];
setTimeout(function() {
alert("Changing width");
$scope.my_autocomplete.wrapper.css("width", "300px");
}, 4000);
});
<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.3.1119/styles/kendo.common.min.css" />
<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.3.1119/styles/kendo.default.min.css" />
<script src="http://cdn.kendostatic.com/2014.3.1119/js/jquery.min.js"></script>
<script src="http://cdn.kendostatic.com/2014.3.1119/js/angular.min.js"></script>
<script src="http://cdn.kendostatic.com/2014.3.1119/js/kendo.all.min.js"></script>
<div id="example" ng-app="KendoDemos">
<div class="demo-section k-content" ng-controller="MyCtrl">
<input kendo-auto-complete="my_autocomplete" ng-model="country" k-data-source="countryNames" style="width: 200px" />
</div>
</div>