<FrameLayout android:id="@+id/viewLayout" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_weight="1" android:padding="12dp">
<ImageView android:id="@+id/view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:contentDescription="@string/imageDescription" android:src="@drawable/view" />
<TextView android:id="@+id/viewBad" android:layout_width="20dip" android:layout_height="20dip" android:clickable="false" android:layout_marginStart="5dp" android:layout_gravity="top|center_horizontal" android:background="@drawable/badge_background" android:gravity="top|center_horizontal" android:text="5" android:textColor="@color/white" android:visibility="gone" />
</FrameLayout>
通过以下代码,我正在阅读元素<library>
<book>
<id>1</id>
<name>abc</name>
<read>
<data>yes</data>
<num>20</num>
</read>
</book>
<book>
<id>20</id>
<name>xyz</name>
<read>
<data>yes</data>
</read>
</book>
<book>
<id>30</id>
<name>ddd</name>
</book>
</library>
值= 20的<book>
节点
<id>
此处if条件无法正常工作。它传递条件并进入内部并给出null异常。这是检查相同的正确方法吗?
我正在使用.NET FRAMEWORK 4.0
答案 0 :(得分:2)
您需要为每个null
来电检查Elements
:
if(book != null && book.Element("read") != null && book.Element("read").Element("num") != null) //check the node exist
在C#6中,你可以使用?.
运算符让它感觉更好:
if(book?.Element("read")?.Element("num") != null) //check the node exist